perf: use cached single docs (#30536)

frappe.local is request specific thread local, hence is almost as good
as no caching.
This commit is contained in:
Ankush Menat 2022-04-01 11:55:19 +05:30 committed by GitHub
parent bfc34e1084
commit 257623509d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 6 additions and 11 deletions

View File

@ -146,12 +146,7 @@ def validate_cart_settings(doc=None, method=None):
def get_shopping_cart_settings(): def get_shopping_cart_settings():
if not getattr(frappe.local, "shopping_cart_settings", None): return frappe.get_cached_doc("E Commerce Settings")
frappe.local.shopping_cart_settings = frappe.get_doc(
"E Commerce Settings", "E Commerce Settings"
)
return frappe.local.shopping_cart_settings
@frappe.whitelist(allow_guest=True) @frappe.whitelist(allow_guest=True)

View File

@ -41,4 +41,4 @@ class EducationSettings(Document):
def update_website_context(context): def update_website_context(context):
context["lms_enabled"] = frappe.get_doc("Education Settings").enable_lms context["lms_enabled"] = frappe.get_cached_doc("Education Settings").enable_lms

View File

@ -8,7 +8,7 @@ no_cache = 1
def get_context(context): def get_context(context):
homepage = frappe.get_doc("Homepage") homepage = frappe.get_cached_doc("Homepage")
for item in homepage.products: for item in homepage.products:
route = frappe.db.get_value("Website Item", {"item_code": item.item_code}, "route") route = frappe.db.get_value("Website Item", {"item_code": item.item_code}, "route")
@ -20,10 +20,10 @@ def get_context(context):
context.homepage = homepage context.homepage = homepage
if homepage.hero_section_based_on == "Homepage Section" and homepage.hero_section: if homepage.hero_section_based_on == "Homepage Section" and homepage.hero_section:
homepage.hero_section_doc = frappe.get_doc("Homepage Section", homepage.hero_section) homepage.hero_section_doc = frappe.get_cached_doc("Homepage Section", homepage.hero_section)
if homepage.slideshow: if homepage.slideshow:
doc = frappe.get_doc("Website Slideshow", homepage.slideshow) doc = frappe.get_cached_doc("Website Slideshow", homepage.slideshow)
context.slideshow = homepage.slideshow context.slideshow = homepage.slideshow
context.slideshow_header = doc.header context.slideshow_header = doc.header
context.slides = doc.slideshow_items context.slides = doc.slideshow_items
@ -46,7 +46,7 @@ def get_context(context):
order_by="section_order asc", order_by="section_order asc",
) )
context.homepage_sections = [ context.homepage_sections = [
frappe.get_doc("Homepage Section", name) for name in homepage_sections frappe.get_cached_doc("Homepage Section", name) for name in homepage_sections
] ]
context.metatags = context.metatags or frappe._dict({}) context.metatags = context.metatags or frappe._dict({})