From e3fc400fd4d9385995d4bf13d0bf586f0e4e675b Mon Sep 17 00:00:00 2001 From: Gavin D'souza Date: Mon, 3 Jan 2022 19:01:01 +0530 Subject: [PATCH] refactor(minor): Override clear_cache instead of separate hooks Clear cached maps via Document.clear_cache --- .../assignment_rule/assignment_rule.py | 24 +++++++------------ 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/frappe/automation/doctype/assignment_rule/assignment_rule.py b/frappe/automation/doctype/assignment_rule/assignment_rule.py index a3e27d4da5..5a5581f2bc 100644 --- a/frappe/automation/doctype/assignment_rule/assignment_rule.py +++ b/frappe/automation/doctype/assignment_rule/assignment_rule.py @@ -3,14 +3,14 @@ # License: MIT. See LICENSE import frappe -from frappe.model.document import Document -from frappe.desk.form import assign_to -import frappe.cache_manager from frappe import _ +from frappe.cache_manager import clear_doctype_map, get_doctype_map +from frappe.desk.form import assign_to from frappe.model import log_types +from frappe.model.document import Document + class AssignmentRule(Document): - def validate(self): assignment_days = self.get_assignment_days() if not len(set(assignment_days)) == len(assignment_days): @@ -19,14 +19,10 @@ class AssignmentRule(Document): if self.document_type == 'ToDo': frappe.throw(_('Assignment Rule is not allowed on {0} document type').format(frappe.bold("ToDo"))) - def on_update(self): - clear_assignment_rule_cache(self) - - def after_rename(self, old, new, merge): - clear_assignment_rule_cache(self) - - def on_trash(self): - clear_assignment_rule_cache(self) + def clear_cache(self): + super().clear_cache() + clear_doctype_map(self.doctype, self.document_type) + clear_doctype_map(self.doctype, f"due_date_rules_for_{self.document_type}") def apply_unassign(self, doc, assignments): if (self.unassign_condition and @@ -35,7 +31,6 @@ class AssignmentRule(Document): return False - def apply_assign(self, doc): if self.safe_eval('assign_condition', doc): return self.do_assignment(doc) @@ -296,6 +291,3 @@ def get_repeated(values): diff.append(str(value)) return " ".join(diff) -def clear_assignment_rule_cache(rule): - frappe.cache_manager.clear_doctype_map('Assignment Rule', rule.document_type) - frappe.cache_manager.clear_doctype_map('Assignment Rule', 'due_date_rules_for_' + rule.document_type)