fix: Consider parenttype when renaming (#19901)
This commit is contained in:
parent
9598beb0c9
commit
07529ff1c3
2 changed files with 32 additions and 1 deletions
|
|
@ -397,7 +397,11 @@ def rename_doctype(doctype: str, old: str, new: str) -> None:
|
|||
def update_child_docs(old: str, new: str, meta: "Meta") -> None:
|
||||
# update "parent"
|
||||
for df in meta.get_table_fields():
|
||||
frappe.qb.update(df.options).set("parent", new).where(Field("parent") == old).run()
|
||||
(
|
||||
frappe.qb.update(df.options)
|
||||
.set("parent", new)
|
||||
.where((Field("parent") == old) & (Field("parenttype") == meta.name))
|
||||
).run()
|
||||
|
||||
|
||||
def update_link_field_values(link_fields: list[dict], old: str, new: str, doctype: str) -> None:
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ from random import choice, sample
|
|||
from unittest.mock import patch
|
||||
|
||||
import frappe
|
||||
from frappe.core.doctype.doctype.test_doctype import new_doctype
|
||||
from frappe.exceptions import DoesNotExistError, ValidationError
|
||||
from frappe.model.base_document import get_controller
|
||||
from frappe.model.rename_doc import (
|
||||
|
|
@ -271,3 +272,29 @@ class TestRenameDoc(FrappeTestCase):
|
|||
self.assertEqual(doc.name, new_name)
|
||||
self.available_documents.append(new_name)
|
||||
self.available_documents.remove(name)
|
||||
|
||||
def test_parenttype(self):
|
||||
child = new_doctype(istable=1).insert()
|
||||
table_field = {
|
||||
"label": "Test Table",
|
||||
"fieldname": "test_table",
|
||||
"fieldtype": "Table",
|
||||
"options": child.name,
|
||||
}
|
||||
|
||||
parent_a = new_doctype(fields=[table_field], allow_rename=1, autoname="Prompt").insert()
|
||||
parent_b = new_doctype(fields=[table_field], allow_rename=1, autoname="Prompt").insert()
|
||||
|
||||
parent_a_instance = frappe.get_doc(
|
||||
doctype=parent_a.name, test_table=[{"some_fieldname": "x"}], name="XYZ"
|
||||
).insert()
|
||||
|
||||
parent_b_instance = frappe.get_doc(
|
||||
doctype=parent_b.name, test_table=[{"some_fieldname": "x"}], name="XYZ"
|
||||
).insert()
|
||||
|
||||
parent_b_instance.rename("ABC")
|
||||
parent_a_instance.reload()
|
||||
|
||||
self.assertEqual(len(parent_a_instance.test_table), 1)
|
||||
self.assertEqual(len(parent_b_instance.test_table), 1)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue