Merge pull request #38207 from ShrihariMahabal/report-cache-update
fix: update user allowed reports cache after insert and trash
This commit is contained in:
commit
d50f03fc82
2 changed files with 36 additions and 0 deletions
|
|
@ -106,6 +106,13 @@ class Report(Document):
|
|||
|
||||
delete_custom_role("report", self.name)
|
||||
|
||||
def clear_cache(self):
|
||||
self.update_report_cache()
|
||||
return super().clear_cache()
|
||||
|
||||
def update_report_cache(self):
|
||||
frappe.cache.delete_key("bootinfo")
|
||||
|
||||
def delete_report_folder(self):
|
||||
from frappe.modules.export_file import delete_folder
|
||||
|
||||
|
|
|
|||
|
|
@ -406,3 +406,32 @@ result = [
|
|||
self.assertEqual(result[-1][0], "Total")
|
||||
self.assertEqual(result[-1][1], 200)
|
||||
self.assertEqual(result[-1][2], 150.50)
|
||||
|
||||
def test_report_cache_invalidation(self):
|
||||
import frappe.sessions
|
||||
from frappe.utils import set_request
|
||||
|
||||
frappe.set_user("test@example.com")
|
||||
set_request(method="GET", path="/app")
|
||||
|
||||
try:
|
||||
frappe.sessions.get()
|
||||
|
||||
report_name = _save_report(
|
||||
"Test Cache Invalidation Report",
|
||||
"User",
|
||||
json.dumps([{"fieldname": "email", "fieldtype": "Data", "label": "Email"}]),
|
||||
)
|
||||
|
||||
cached_bootinfo = frappe.sessions.get()
|
||||
self.assertIn(report_name, cached_bootinfo["user"]["all_reports"])
|
||||
|
||||
doc = frappe.get_doc("Report", report_name)
|
||||
delete_report(doc.name)
|
||||
|
||||
cached_bootinfo = frappe.sessions.get()
|
||||
self.assertNotIn(report_name, cached_bootinfo["user"]["all_reports"])
|
||||
|
||||
finally:
|
||||
frappe.local.request = None
|
||||
frappe.set_user("Administrator")
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue