From 4e2e8daca9bb9ece93acde85df38a69304fb43a2 Mon Sep 17 00:00:00 2001 From: Gavin D'souza Date: Fri, 4 Jun 2021 17:56:28 +0530 Subject: [PATCH] fix(patch): Reload linked doctypes before renaming dt --- .../v13_0/healthcare_lab_module_rename_doctypes.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/erpnext/patches/v13_0/healthcare_lab_module_rename_doctypes.py b/erpnext/patches/v13_0/healthcare_lab_module_rename_doctypes.py index 9af0a8dbef..dcfbc3834d 100644 --- a/erpnext/patches/v13_0/healthcare_lab_module_rename_doctypes.py +++ b/erpnext/patches/v13_0/healthcare_lab_module_rename_doctypes.py @@ -1,6 +1,7 @@ from __future__ import unicode_literals import frappe from frappe.model.utils.rename_field import rename_field +from frappe.model.rename_doc import get_link_fields def execute(): if frappe.db.exists('DocType', 'Lab Test') and frappe.db.exists('DocType', 'Lab Test Template'): @@ -17,9 +18,18 @@ def execute(): frappe.reload_doc('healthcare', 'doctype', 'lab_test_template') for old_dt, new_dt in doctypes.items(): - if not frappe.db.table_exists(new_dt) and frappe.db.table_exists(old_dt): + should_rename = ( + frappe.db.table_exists(old_dt) + and not frappe.db.table_exists(new_dt) + ) + if should_rename: frappe.reload_doc('healthcare', 'doctype', frappe.scrub(old_dt)) + + linked_doctypes = {x.parent for x in get_link_fields(old_dt)} + for linked_doctype in linked_doctypes: + frappe.reload_doctype(linked_doctype, force=True) frappe.rename_doc('DocType', old_dt, new_dt, force=True) + frappe.reload_doc('healthcare', 'doctype', frappe.scrub(new_dt)) frappe.delete_doc_if_exists('DocType', old_dt)