mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-26 00:14:50 +00:00
perf(cache): fix active SLA doctype caching (#26861)
If no SLA is configured then this query runs on EVERY `validate` call. Root cause: if not active SLA doctypes exist then `not []` evalutes to true and causes query to run again.
This commit is contained in:
@@ -281,15 +281,18 @@ def get_repeated(values):
|
|||||||
|
|
||||||
|
|
||||||
def get_documents_with_active_service_level_agreement():
|
def get_documents_with_active_service_level_agreement():
|
||||||
if not frappe.cache().hget("service_level_agreement", "active"):
|
sla_doctypes = frappe.cache().hget("service_level_agreement", "active")
|
||||||
set_documents_with_active_service_level_agreement()
|
|
||||||
|
|
||||||
return frappe.cache().hget("service_level_agreement", "active")
|
if sla_doctypes is None:
|
||||||
|
return set_documents_with_active_service_level_agreement()
|
||||||
|
|
||||||
|
return sla_doctypes
|
||||||
|
|
||||||
|
|
||||||
def set_documents_with_active_service_level_agreement():
|
def set_documents_with_active_service_level_agreement():
|
||||||
active = [sla.document_type for sla in frappe.get_all("Service Level Agreement", fields=["document_type"])]
|
active = [sla.document_type for sla in frappe.get_all("Service Level Agreement", fields=["document_type"])]
|
||||||
frappe.cache().hset("service_level_agreement", "active", active)
|
frappe.cache().hset("service_level_agreement", "active", active)
|
||||||
|
return active
|
||||||
|
|
||||||
|
|
||||||
def apply(doc, method=None):
|
def apply(doc, method=None):
|
||||||
|
|||||||
Reference in New Issue
Block a user