diff --git a/frappe/boot.py b/frappe/boot.py index 7fc071b6b8..e6d1199b19 100644 --- a/frappe/boot.py +++ b/frappe/boot.py @@ -41,7 +41,7 @@ def get_bootinfo(): bootinfo.modules = {} bootinfo.module_list = [] - load_desktop_icons(bootinfo) + load_desktop_data(bootinfo) bootinfo.letter_heads = get_letter_heads() bootinfo.active_domains = frappe.get_active_domains() bootinfo.all_domains = [d.get("name") for d in frappe.get_all("Domain")] @@ -99,9 +99,11 @@ def load_conf_settings(bootinfo): for key in ('developer_mode', 'socketio_port', 'file_watcher_port'): if key in conf: bootinfo[key] = conf.get(key) -def load_desktop_icons(bootinfo): +def load_desktop_data(bootinfo): from frappe.config import get_modules_from_all_apps_for_user + from frappe.desk.desktop import get_desk_sidebar_items bootinfo.allowed_modules = get_modules_from_all_apps_for_user() + bootinfo.allowed_workspaces = get_desk_sidebar_items(True) def get_allowed_pages(): return get_user_pages_or_reports('Page') diff --git a/frappe/desk/desktop.py b/frappe/desk/desktop.py index 1cb03355c6..c55691fe91 100644 --- a/frappe/desk/desktop.py +++ b/frappe/desk/desktop.py @@ -209,7 +209,7 @@ def get_desktop_page(page): return None @frappe.whitelist() -def get_desk_sidebar_items(): +def get_desk_sidebar_items(flatten=False): """Get list of sidebar items for desk """ # don't get domain restricted pages @@ -224,6 +224,8 @@ def get_desk_sidebar_items(): # pages sorted based on pinned to top and then by name order_by = "pin_to_top desc, pin_to_bottom asc, name asc" pages = frappe.get_all("Desk Page", fields=["name", "category"], filters=filters, order_by=order_by, ignore_permissions=True) + if flatten: + return pages from collections import defaultdict sidebar_items = defaultdict(list)