From d83712d553e313682bcd1043dc320a85418fc9cd Mon Sep 17 00:00:00 2001 From: Ankush Menat Date: Fri, 22 Jul 2022 15:42:04 +0530 Subject: [PATCH] feat: delete support for virtual doctypes from desk --- frappe/core/doctype/test/test_test.py | 3 ++- frappe/model/delete_doc.py | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/frappe/core/doctype/test/test_test.py b/frappe/core/doctype/test/test_test.py index 08bb8b2b84..70ba1fd1e1 100644 --- a/frappe/core/doctype/test/test_test.py +++ b/frappe/core/doctype/test/test_test.py @@ -60,7 +60,8 @@ class Testtest(FrappeTestCase): def test_delete_doc(self): doc = frappe.get_doc(doctype="test", test="data").insert() - doc.delete() + + frappe.delete_doc(doc.doctype, doc.name) listed_docs = {d.name for d in VirtDocType.get_list({})} self.assertNotIn(doc.name, listed_docs) diff --git a/frappe/model/delete_doc.py b/frappe/model/delete_doc.py index b555dfc5dc..332a4337e2 100644 --- a/frappe/model/delete_doc.py +++ b/frappe/model/delete_doc.py @@ -11,6 +11,7 @@ from frappe import _, get_module_path from frappe.desk.doctype.tag.tag import delete_tags_for_document from frappe.model.dynamic_links import get_dynamic_link_map from frappe.model.naming import revert_series_if_last +from frappe.model.utils import is_virtual_doctype from frappe.utils.file_manager import remove_all from frappe.utils.global_search import delete_for_document from frappe.utils.password import delete_all_passwords_for @@ -57,11 +58,16 @@ def delete_doc( doctype = frappe.form_dict.get("dt") name = frappe.form_dict.get("dn") + is_virtual = is_virtual_doctype(doctype) + names = name if isinstance(name, str) or isinstance(name, int): names = [name] for name in names or []: + if is_virtual: + frappe.get_doc(doctype, name).delete() + continue # already deleted..? if not frappe.db.exists(doctype, name):