From f97cc370cf92697775f37e154b216fa456bb3780 Mon Sep 17 00:00:00 2001 From: prssanna Date: Mon, 22 Mar 2021 14:22:48 +0530 Subject: [PATCH] feat: flag to delete docs permanently --- frappe/__init__.py | 6 +++--- frappe/model/delete_doc.py | 11 ++++++++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/frappe/__init__.py b/frappe/__init__.py index 871d1b9e92..13268d675a 100644 --- a/frappe/__init__.py +++ b/frappe/__init__.py @@ -854,8 +854,8 @@ def get_meta_module(doctype): import frappe.modules return frappe.modules.load_doctype_module(doctype) -def delete_doc(doctype=None, name=None, force=0, ignore_doctypes=None, - for_reload=False, ignore_permissions=False, flags=None, ignore_on_trash=False, ignore_missing=True): +def delete_doc(doctype=None, name=None, force=0, ignore_doctypes=None, for_reload=False, + ignore_permissions=False, flags=None, ignore_on_trash=False, ignore_missing=True, delete_permanently=False): """Delete a document. Calls `frappe.model.delete_doc.delete_doc`. :param doctype: DocType of document to be delete. @@ -866,7 +866,7 @@ def delete_doc(doctype=None, name=None, force=0, ignore_doctypes=None, :param ignore_permissions: Ignore user permissions.""" import frappe.model.delete_doc frappe.model.delete_doc.delete_doc(doctype, name, force, ignore_doctypes, for_reload, - ignore_permissions, flags, ignore_on_trash, ignore_missing) + ignore_permissions, flags, ignore_on_trash, ignore_missing, delete_permanently) def delete_doc_if_exists(doctype, name, force=0): """Delete document if exists.""" diff --git a/frappe/model/delete_doc.py b/frappe/model/delete_doc.py index d0e0a6fb1a..f0fe5daed4 100644 --- a/frappe/model/delete_doc.py +++ b/frappe/model/delete_doc.py @@ -22,8 +22,8 @@ from frappe.exceptions import FileNotFoundError doctypes_to_skip = ("Communication", "ToDo", "DocShare", "Email Unsubscribe", "Activity Log", "File", "Version", "Document Follow", "Comment" , "View Log", "Tag Link", "Notification Log", "Email Queue") -def delete_doc(doctype=None, name=None, force=0, ignore_doctypes=None, for_reload=False, - ignore_permissions=False, flags=None, ignore_on_trash=False, ignore_missing=True): +def delete_doc(doctype=None, name=None, force=0, ignore_doctypes=None, for_reload=False, ignore_permissions=False, + flags=None, ignore_on_trash=False, ignore_missing=True, delete_permanently=False): """ Deletes a doc(dt, dn) and validates if it is not submitted and not linked in a live record """ @@ -125,8 +125,13 @@ def delete_doc(doctype=None, name=None, force=0, ignore_doctypes=None, for_reloa # delete tag link entry delete_tags_for_document(doc) - if doc and not for_reload: + if for_reload: + delete_permanently = True + + if not delete_permanently: add_to_deleted_document(doc) + + if doc and not for_reload: if not frappe.flags.in_patch: try: doc.notify_update()