fix: nestedset rename (#20498)

This commit is contained in:
Ankush Menat 2023-03-29 12:49:28 +05:30 committed by GitHub
parent 6096e45b36
commit 45c86e2ff8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 5 deletions

View file

@ -488,6 +488,9 @@ def update_options_for_fieldtype(fieldtype: str, old: str, new: str) -> None:
if frappe.conf.developer_mode:
for name in frappe.get_all("DocField", filters={"options": old}, pluck="parent"):
if name in (old, new):
continue
doctype = frappe.get_doc("DocType", name)
save = False
for f in doctype.fields:
@ -496,11 +499,11 @@ def update_options_for_fieldtype(fieldtype: str, old: str, new: str) -> None:
save = True
if save:
doctype.save()
else:
DocField = frappe.qb.DocType("DocField")
frappe.qb.update(DocField).set(DocField.options, new).where(
(DocField.fieldtype == fieldtype) & (DocField.options == old)
).run()
DocField = frappe.qb.DocType("DocField")
frappe.qb.update(DocField).set(DocField.options, new).where(
(DocField.fieldtype == fieldtype) & (DocField.options == old)
).run()
frappe.qb.update(CustomField).set(CustomField.options, new).where(
(CustomField.fieldtype == fieldtype) & (CustomField.options == old)

View file

@ -8,6 +8,7 @@ from frappe.core.doctype.doctype.test_doctype import new_doctype
from frappe.query_builder import Field
from frappe.query_builder.functions import Max
from frappe.tests.utils import FrappeTestCase
from frappe.utils import random_string
from frappe.utils.nestedset import (
NestedSetChildExistsError,
NestedSetInvalidMergeError,
@ -213,6 +214,12 @@ class TestNestedSet(FrappeTestCase):
remove_subtree("Test Tree DocType", "Parent 2")
self.test_basic_tree()
def test_rename_nestedset(self):
doctype = new_doctype(is_tree=True).insert()
# Rename doctype
frappe.rename_doc("DocType", doctype.name, "Test " + random_string(10), force=True)
def test_merge_groups(self):
global records
el = {"some_fieldname": "Parent 2", "parent_test_tree_doctype": "Root Node", "is_group": 1}