From a0b1cac9884adff6aeb3b09bd153db5ed52016d6 Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Wed, 9 Mar 2016 12:14:12 +0530 Subject: [PATCH] [fix] on delete doc, delete comments and orphan communications --- frappe/model/delete_doc.py | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/frappe/model/delete_doc.py b/frappe/model/delete_doc.py index e33a9a1b17..883c51d542 100644 --- a/frappe/model/delete_doc.py +++ b/frappe/model/delete_doc.py @@ -72,7 +72,6 @@ def delete_doc(doctype=None, name=None, force=0, ignore_doctypes=None, for_reloa doc.run_method("on_trash") delete_linked_todos(doc) - delete_linked_comments(doc) delete_linked_communications(doc) delete_shared(doc) # check if links exist @@ -193,17 +192,13 @@ def delete_linked_todos(doc): where reference_type=%s and reference_name=%s""", (doc.doctype, doc.name)), ignore_permissions=True) -def delete_linked_comments(doc): - """Delete comments from the document""" - delete_doc("Communication", frappe.db.sql_list("""select name from `tabCommunication` +def delete_linked_communications(doc): + # delete comments + frappe.db.sql("""delete from `tabCommunication` where communication_type = 'Comment' - and reference_doctype=%s - and reference_name=%s""", (doc.doctype, doc.name)), - ignore_on_trash=True, - ignore_permissions=True) + and reference_doctype=%s and reference_name=%s""", (doc.doctype, doc.name)) -def delete_linked_communications(doc): # make communications orphans frappe.db.sql("""update `tabCommunication` set reference_doctype=null, reference_name=null @@ -212,6 +207,15 @@ def delete_linked_communications(doc): and reference_doctype=%s and reference_name=%s""", (doc.doctype, doc.name)) + # make secondary references orphans + frappe.db.sql("""update `tabCommunication` + set link_doctype=null, link_name=null + where link_doctype=%s and link_name=%s""", (doc.doctype, doc.name)) + + frappe.db.sql("""update `tabCommunication` + set timeline_doctype=null, timeline_name=null + where timeline_doctype=%s and timeline_name=%s""", (doc.doctype, doc.name)) + def insert_feed(doc): from frappe.utils import get_fullname