From c7a7cb2b9016c38791a7dafb179833448488f4c9 Mon Sep 17 00:00:00 2001 From: KerollesFathy Date: Thu, 11 Dec 2025 19:45:01 +0000 Subject: [PATCH 1/3] fix: Add virtual doctypes to the list of ignored doctypes in transaction deletion --- .../transaction_deletion_record/transaction_deletion_record.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py b/erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py index 55c42471131..ab49fb2a7bf 100644 --- a/erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py +++ b/erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py @@ -349,7 +349,8 @@ class TransactionDeletionRecord(Document): def get_doctypes_to_be_ignored_list(self): singles = frappe.get_all("DocType", filters={"issingle": 1}, pluck="name") - doctypes_to_be_ignored_list = singles + virtuals = frappe.get_all("DocType", filters={"is_virtual": 1}, pluck="name") + doctypes_to_be_ignored_list = singles + virtuals for doctype in self.doctypes_to_be_ignored: doctypes_to_be_ignored_list.append(doctype.doctype_name) From 45a7195abea682419d8e2393679f4981d2fdad9e Mon Sep 17 00:00:00 2001 From: KerollesFathy Date: Thu, 11 Dec 2025 20:56:05 +0000 Subject: [PATCH 2/3] refactor: switch to `or_filters` so the query hits the DB only once --- .../transaction_deletion_record.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py b/erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py index ab49fb2a7bf..919495e0f3f 100644 --- a/erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py +++ b/erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py @@ -348,9 +348,10 @@ class TransactionDeletionRecord(Document): self.db_set("error_log", None) def get_doctypes_to_be_ignored_list(self): - singles = frappe.get_all("DocType", filters={"issingle": 1}, pluck="name") - virtuals = frappe.get_all("DocType", filters={"is_virtual": 1}, pluck="name") - doctypes_to_be_ignored_list = singles + virtuals + singles_and_virtuals = frappe.get_all( + "DocType", or_filters=[["issingle", "=", 1], ["is_virtual", "=", 1]], pluck="name" + ) + doctypes_to_be_ignored_list = singles_and_virtuals for doctype in self.doctypes_to_be_ignored: doctypes_to_be_ignored_list.append(doctype.doctype_name) From 0f7d89f4d113e7fc276c338f6a41d362e43164d4 Mon Sep 17 00:00:00 2001 From: KerollesFathy Date: Fri, 12 Dec 2025 20:38:02 +0000 Subject: [PATCH 3/3] refactor: remove redundant assignment of doctypes_to_be_ignored_list --- .../transaction_deletion_record/transaction_deletion_record.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py b/erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py index 919495e0f3f..edca7bde6da 100644 --- a/erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py +++ b/erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py @@ -348,10 +348,9 @@ class TransactionDeletionRecord(Document): self.db_set("error_log", None) def get_doctypes_to_be_ignored_list(self): - singles_and_virtuals = frappe.get_all( + doctypes_to_be_ignored_list = frappe.get_all( "DocType", or_filters=[["issingle", "=", 1], ["is_virtual", "=", 1]], pluck="name" ) - doctypes_to_be_ignored_list = singles_and_virtuals for doctype in self.doctypes_to_be_ignored: doctypes_to_be_ignored_list.append(doctype.doctype_name)