From e06d01e3edbbc77f837737cd70b9daa180c3bb06 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Mon, 29 Jun 2015 18:38:27 +0530 Subject: [PATCH] Delete events via query instead of delete_doc function, to save time --- erpnext/utilities/transaction_base.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/erpnext/utilities/transaction_base.py b/erpnext/utilities/transaction_base.py index 60889c5415..be74aeb920 100644 --- a/erpnext/utilities/transaction_base.py +++ b/erpnext/utilities/transaction_base.py @@ -22,16 +22,21 @@ class TransactionBase(StatusUpdater): self.posting_time = now_datetime().strftime('%H:%M:%S') def add_calendar_event(self, opts, force=False): - if self.contact_by != cstr(self._prev.contact_by) or \ - self.contact_date != cstr(self._prev.contact_date) or force: + if cstr(self.contact_by) != cstr(self._prev.contact_by) or \ + cstr(self.contact_date) != cstr(self._prev.contact_date) or force: self.delete_events() self._add_calendar_event(opts) def delete_events(self): - frappe.delete_doc("Event", frappe.db.sql_list("""select name from `tabEvent` - where ref_type=%s and ref_name=%s""", (self.doctype, self.name)), - ignore_permissions=True) + events = frappe.db.sql_list("""select name from `tabEvent` + where ref_type=%s and ref_name=%s""", (self.doctype, self.name)) + if events: + frappe.db.sql("delete from `tabEvent` where name in (%s)" + .format(", ".join(['%s']*len(events))), tuple(events)) + + frappe.db.sql("delete from `tabEvent Role` where parent in (%s)" + .format(", ".join(['%s']*len(events))), tuple(events)) def _add_calendar_event(self, opts): opts = frappe._dict(opts)