perf: misc v16 fixes (#35790)
* perf: Reduce queries for setup wizard progress These are queried on boot continuously, can just cache installed app doc. * fix: remove stray db.commit in csrf generation
This commit is contained in:
parent
2a96c48637
commit
29be54a35d
2 changed files with 11 additions and 23 deletions
|
|
@ -6,6 +6,7 @@ import json
|
|||
import frappe
|
||||
from frappe import _
|
||||
from frappe.model.document import Document
|
||||
from frappe.utils.caching import redis_cache
|
||||
|
||||
|
||||
class InvalidAppOrder(frappe.ValidationError):
|
||||
|
|
@ -152,24 +153,16 @@ def get_installed_app_order() -> list[str]:
|
|||
return frappe.get_installed_apps(_ensure_on_bench=True)
|
||||
|
||||
|
||||
@frappe.request_cache
|
||||
def get_setup_wizard_completed_apps():
|
||||
"""Get list of apps that have completed setup wizard"""
|
||||
return frappe.get_all(
|
||||
"Installed Application",
|
||||
filters={"has_setup_wizard": 1, "is_setup_complete": 1},
|
||||
pluck="app_name",
|
||||
)
|
||||
apps: InstalledApplications = frappe.client_cache.get_doc("Installed Applications")
|
||||
return [a.app_name for a in apps.installed_applications if a.has_setup_wizard and a.is_setup_complete]
|
||||
|
||||
|
||||
@frappe.request_cache
|
||||
def get_setup_wizard_not_required_apps():
|
||||
"""Get list of apps that do not require setup wizard"""
|
||||
return frappe.get_all(
|
||||
"Installed Application",
|
||||
filters={"has_setup_wizard": 0},
|
||||
pluck="app_name",
|
||||
)
|
||||
apps: InstalledApplications = frappe.client_cache.get_doc("Installed Applications")
|
||||
return [a.app_name for a in apps.installed_applications if not a.has_setup_wizard]
|
||||
|
||||
|
||||
@frappe.request_cache
|
||||
|
|
@ -190,17 +183,14 @@ def get_apps_with_incomplete_dependencies(current_app):
|
|||
return pending_apps
|
||||
|
||||
|
||||
@frappe.request_cache
|
||||
def get_setup_wizard_pending_apps(apps=None):
|
||||
"""Get list of apps that have completed setup wizard"""
|
||||
|
||||
filters = {"has_setup_wizard": 1, "is_setup_complete": 0}
|
||||
apps: InstalledApplications = frappe.client_cache.get_doc("Installed Applications")
|
||||
pending_apps = [
|
||||
a.app_name for a in apps.installed_applications if a.has_setup_wizard and not a.is_setup_complete
|
||||
]
|
||||
if apps:
|
||||
filters["app_name"] = ["in", apps]
|
||||
pending_apps = [a for a in pending_apps if a in apps]
|
||||
|
||||
return frappe.get_all(
|
||||
"Installed Application",
|
||||
filters=filters,
|
||||
order_by="idx",
|
||||
pluck="app_name",
|
||||
)
|
||||
return pending_apps
|
||||
|
|
|
|||
|
|
@ -34,8 +34,6 @@ def get_context(context):
|
|||
# this needs commit
|
||||
csrf_token = frappe.sessions.get_csrf_token()
|
||||
|
||||
frappe.db.commit() # nosemgrep
|
||||
|
||||
hooks = frappe.get_hooks()
|
||||
app_include_js = hooks.get("app_include_js", []) + frappe.conf.get("app_include_js", [])
|
||||
app_include_css = hooks.get("app_include_css", []) + frappe.conf.get("app_include_css", [])
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue