From aff557914ec7ca13a67b7cb2a2deaf2b1da87966 Mon Sep 17 00:00:00 2001 From: Zarrar Date: Thu, 29 Nov 2018 12:19:26 +0530 Subject: [PATCH] fix: delete event if its reference doc is deleted (#6453) * delete events associated with any reference doctype * fix query, remove whitelist --- frappe/desk/doctype/event/event.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/frappe/desk/doctype/event/event.py b/frappe/desk/doctype/event/event.py index b8b32bc711..0c64c487fb 100644 --- a/frappe/desk/doctype/event/event.py +++ b/frappe/desk/doctype/event/event.py @@ -251,3 +251,19 @@ def get_events(start, end, user=None, for_reminder=False, filters=None): del e[w] return events + +def delete_events(ref_type, ref_name, delete_event=False): + participations = frappe.get_all("Event Participants", filters={"reference_doctype": ref_type, "reference_docname": ref_name, + "parenttype": "Event"}, fields=["parent", "name"]) + + if participations: + for participation in participations: + if delete_event: + frappe.delete_doc("Event", participation.parent, for_reload=True) + else: + total_participants = frappe.get_all("Event Participants", filters={"parenttype": "Event", "parent": participation.parent}) + + if len(total_participants) <= 1: + frappe.db.sql("DELETE FROM `tabEvent` WHERE `name` = %(name)s", {'name': participation.parent}) + + frappe.db.sql("DELETE FROM `tabEvent Participants ` WHERE `name` = %(name)s", {'name': participation.name})