|
|
@@ -361,57 +361,39 @@ def get_desktop_page(page): |
|
|
|
} |
|
|
|
|
|
|
|
@frappe.whitelist() |
|
|
|
def get_desk_sidebar_items(flatten=False, cache=True): |
|
|
|
"""Get list of sidebar items for desk |
|
|
|
""" |
|
|
|
pages = [] |
|
|
|
_cache = frappe.cache() |
|
|
|
if cache: |
|
|
|
pages = _cache.get_value("desk_sidebar_items", user=frappe.session.user) |
|
|
|
|
|
|
|
if not pages or not cache: |
|
|
|
# don't get domain restricted pages |
|
|
|
blocked_modules = frappe.get_doc('User', frappe.session.user).get_blocked_modules() |
|
|
|
|
|
|
|
filters = { |
|
|
|
'restrict_to_domain': ['in', frappe.get_active_domains()], |
|
|
|
'extends_another_page': 0, |
|
|
|
'for_user': '', |
|
|
|
'module': ['not in', blocked_modules] |
|
|
|
} |
|
|
|
def get_desk_sidebar_items(): |
|
|
|
"""Get list of sidebar items for desk""" |
|
|
|
|
|
|
|
if not frappe.local.conf.developer_mode: |
|
|
|
filters['developer_mode_only'] = '0' |
|
|
|
# don't get domain restricted pages |
|
|
|
blocked_modules = frappe.get_doc('User', frappe.session.user).get_blocked_modules() |
|
|
|
|
|
|
|
# pages sorted based on pinned to top and then by name |
|
|
|
order_by = "pin_to_top desc, pin_to_bottom asc, name asc" |
|
|
|
all_pages = frappe.get_all("Workspace", fields=["name", "category", "icon", "module"], |
|
|
|
filters=filters, order_by=order_by, ignore_permissions=True) |
|
|
|
pages = [] |
|
|
|
|
|
|
|
# Filter Page based on Permission |
|
|
|
for page in all_pages: |
|
|
|
try: |
|
|
|
wspace = Workspace(page.get('name'), True) |
|
|
|
if wspace.is_page_allowed(): |
|
|
|
pages.append(page) |
|
|
|
except frappe.PermissionError: |
|
|
|
pass |
|
|
|
|
|
|
|
_cache.set_value("desk_sidebar_items", pages, frappe.session.user) |
|
|
|
filters = { |
|
|
|
'restrict_to_domain': ['in', frappe.get_active_domains()], |
|
|
|
'extends_another_page': 0, |
|
|
|
'for_user': '', |
|
|
|
'module': ['not in', blocked_modules] |
|
|
|
} |
|
|
|
|
|
|
|
if flatten: |
|
|
|
return pages |
|
|
|
if not frappe.local.conf.developer_mode: |
|
|
|
filters['developer_mode_only'] = '0' |
|
|
|
|
|
|
|
from collections import defaultdict |
|
|
|
sidebar_items = defaultdict(list) |
|
|
|
# pages sorted based on pinned to top and then by name |
|
|
|
order_by = "pin_to_top desc, pin_to_bottom asc, name asc" |
|
|
|
all_pages = frappe.get_all("Workspace", fields=["name", "category", "icon", "module"], |
|
|
|
filters=filters, order_by=order_by, ignore_permissions=True) |
|
|
|
pages = [] |
|
|
|
|
|
|
|
# The order will be maintained while categorizing |
|
|
|
for page in pages: |
|
|
|
# Translate label |
|
|
|
page['label'] = _(page.get('name')) |
|
|
|
sidebar_items[page["category"]].append(page) |
|
|
|
return sidebar_items |
|
|
|
# Filter Page based on Permission |
|
|
|
for page in all_pages: |
|
|
|
try: |
|
|
|
wspace = Workspace(page.get('name'), True) |
|
|
|
if wspace.is_page_allowed(): |
|
|
|
pages.append(page) |
|
|
|
page['label'] = _(page.get('name')) |
|
|
|
except frappe.PermissionError: |
|
|
|
pass |
|
|
|
|
|
|
|
return pages |
|
|
|
|
|
|
|
def get_table_with_counts(): |
|
|
|
counts = frappe.cache().get_value("information_schema:counts") |
|
|
|