feat: flag to delete docs permanently

This commit is contained in:
prssanna 2021-03-22 14:22:48 +05:30
parent c4b0f54943
commit f97cc370cf
2 changed files with 11 additions and 6 deletions

View file

@ -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."""

View file

@ -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()