Kaynağa Gözat

fix: circular imports (#16830)

Circular imports issue when loading modules in background worker. Doesn't happen in web worker or console 🤷
version-14
Ankush Menat 3 yıl önce
committed by GitHub
ebeveyn
işleme
c31eca3ba5
Veri tabanında bu imza için bilinen anahtar bulunamadı GPG Anahtar Kimliği: 4AEE18F83AFDEB23
1 değiştirilmiş dosya ile 22 ekleme ve 23 silme
  1. +22
    -23
      frappe/model/rename_doc.py

+ 22
- 23
frappe/model/rename_doc.py Dosyayı Görüntüle

@@ -9,7 +9,6 @@ from frappe.model.dynamic_links import get_dynamic_link_map
from frappe.model.naming import validate_name
from frappe.model.utils.user_settings import sync_user_settings, update_user_settings_data
from frappe.query_builder import Field
from frappe.query_builder.utils import DocType, Table
from frappe.utils.data import sbool
from frappe.utils.password import rename_password
from frappe.utils.scheduler import is_scheduler_inactive
@@ -198,7 +197,7 @@ def rename_doc(
rename_password(doctype, old, new)

# update user_permissions
DefaultValue = DocType("DefaultValue")
DefaultValue = frappe.qb.DocType("DefaultValue")
frappe.qb.update(DefaultValue).set(DefaultValue.defvalue, new).where(
(DefaultValue.parenttype == "User Permission")
& (DefaultValue.defkey == doctype)
@@ -267,7 +266,7 @@ def update_user_settings(old: str, new: str, link_fields: List[Dict]) -> None:

# find the user settings for the linked doctypes
linked_doctypes = {d.parent for d in link_fields if not d.issingle}
UserSettings = Table("__UserSettings")
UserSettings = frappe.qb.Table("__UserSettings")

user_settings_details = (
frappe.qb.from_(UserSettings)
@@ -299,7 +298,7 @@ def update_customizations(old: str, new: str) -> None:

def update_attachments(doctype: str, old: str, new: str) -> None:
if doctype != "DocType":
File = DocType("File")
File = frappe.qb.DocType("File")

frappe.qb.update(File).set(File.attached_to_name, new).where(
(File.attached_to_name == old) & (File.attached_to_doctype == doctype)
@@ -307,7 +306,7 @@ def update_attachments(doctype: str, old: str, new: str) -> None:


def rename_versions(doctype: str, old: str, new: str) -> None:
Version = DocType("Version")
Version = frappe.qb.DocType("Version")

frappe.qb.update(Version).set(Version.docname, new).where(
(Version.docname == old) & (Version.ref_doctype == doctype)
@@ -315,7 +314,7 @@ def rename_versions(doctype: str, old: str, new: str) -> None:


def rename_eps_records(doctype: str, old: str, new: str) -> None:
EPL = DocType("Energy Point Log")
EPL = frappe.qb.DocType("Energy Point Log")

frappe.qb.update(EPL).set(EPL.reference_name, new).where(
(EPL.reference_doctype == doctype) & (EPL.reference_name == old)
@@ -455,10 +454,10 @@ def get_link_fields(doctype: str) -> List[Dict]:
frappe.flags.link_fields = {}

if doctype not in frappe.flags.link_fields:
dt = DocType("DocType")
df = DocType("DocField")
cf = DocType("Custom Field")
ps = DocType("Property Setter")
dt = frappe.qb.DocType("DocType")
df = frappe.qb.DocType("DocField")
cf = frappe.qb.DocType("Custom Field")
ps = frappe.qb.DocType("Property Setter")

st_issingle = frappe.qb.from_(dt).select(dt.issingle).where(dt.name == df.parent).as_("issingle")
standard_fields = (
@@ -492,8 +491,8 @@ def get_link_fields(doctype: str) -> List[Dict]:


def update_options_for_fieldtype(fieldtype: str, old: str, new: str) -> None:
CustomField = DocType("Custom Field")
PropertySetter = DocType("Property Setter")
CustomField = frappe.qb.DocType("Custom Field")
PropertySetter = frappe.qb.DocType("Property Setter")

if frappe.conf.developer_mode:
for name in frappe.get_all("DocField", filters={"options": old}, pluck="parent"):
@@ -506,7 +505,7 @@ def update_options_for_fieldtype(fieldtype: str, old: str, new: str) -> None:
if save:
doctype.save()
else:
DocField = DocType("DocField")
DocField = frappe.qb.DocType("DocField")
frappe.qb.update(DocField).set(DocField.options, new).where(
(DocField.fieldtype == fieldtype) & (DocField.options == old)
).run()
@@ -525,10 +524,10 @@ def get_select_fields(old: str, new: str) -> List[Dict]:
get select type fields where doctype's name is hardcoded as
new line separated list
"""
df = DocType("DocField")
dt = DocType("DocType")
cf = DocType("Custom Field")
ps = DocType("Property Setter")
df = frappe.qb.DocType("DocField")
dt = frappe.qb.DocType("DocType")
cf = frappe.qb.DocType("Custom Field")
ps = frappe.qb.DocType("Property Setter")

# get link fields from tabDocField
st_issingle = frappe.qb.from_(dt).select(dt.issingle).where(dt.name == df.parent).as_("issingle")
@@ -570,9 +569,9 @@ def get_select_fields(old: str, new: str) -> List[Dict]:
def update_select_field_values(old: str, new: str):
from frappe.query_builder.functions import Replace

DocField = DocType("DocField")
CustomField = DocType("Custom Field")
PropertySetter = DocType("Property Setter")
DocField = frappe.qb.DocType("DocField")
CustomField = frappe.qb.DocType("Custom Field")
PropertySetter = frappe.qb.DocType("Property Setter")

frappe.qb.update(DocField).set(DocField.options, Replace(DocField.options, old, new)).where(
(DocField.fieldtype == "Select")
@@ -623,12 +622,12 @@ def update_parenttype_values(old: str, new: str):
child_doctypes = set(list(d["options"] for d in child_doctypes) + property_setter_child_doctypes)

for doctype in child_doctypes:
Table = DocType(doctype)
frappe.qb.update(Table).set(Table.parenttype, new).where(Table.parenttype == old).run()
table = frappe.qb.DocType(doctype)
frappe.qb.update(table).set(table.parenttype, new).where(table.parenttype == old).run()


def rename_dynamic_links(doctype: str, old: str, new: str):
Singles = DocType("Singles")
Singles = frappe.qb.DocType("Singles")
for df in get_dynamic_link_map().get(doctype, []):
# dynamic link in single, just one value to check
if frappe.get_meta(df.parent).issingle:


Yükleniyor…
İptal
Kaydet