diff --git a/frappe/boot.py b/frappe/boot.py
index 9445a6d0fa..0910516220 100644
--- a/frappe/boot.py
+++ b/frappe/boot.py
@@ -165,29 +165,40 @@ def load_desktop_data(bootinfo):
if has_permission and not frappe.get_attr(has_permission)():
continue
+ workspaces = [
+ r[0]
+ for r in (
+ frappe.qb.from_(Workspace)
+ .inner_join(Module)
+ .on(Workspace.module == Module.name)
+ .select(Workspace.name)
+ .where(Module.app_name == app_name)
+ .run()
+ )
+ if r[0] in allowed_pages
+ ]
+
bootinfo.app_data.append(
dict(
app_name=app_info.get("name") or app_name,
app_title=app_info.get("title")
- or frappe.get_hooks("app_title", app_name=app_name)
+ or (
+ frappe.get_hooks("app_title", app_name=app_name)
+ and frappe.get_hooks("app_title", app_name=app_name)[0]
+ or ""
+ )
or app_name,
- app_route=app_info.get("route") or frappe.get_hooks("app_home", app_name=app_name),
+ app_route=(
+ frappe.get_hooks("app_home", app_name=app_name)
+ and frappe.get_hooks("app_home", app_name=app_name)[0]
+ )
+ or (workspaces and "/app/" + frappe.utils.slug(workspaces[0]))
+ or "",
app_logo_url=app_info.get("logo")
or frappe.get_hooks("app_logo_url", app_name=app_name)
or frappe.get_hooks("app_logo_url", app_name="frappe"),
modules=[m.name for m in frappe.get_all("Module Def", dict(app_name=app_name))],
- workspaces=[
- r[0]
- for r in (
- frappe.qb.from_(Workspace)
- .inner_join(Module)
- .on(Workspace.module == Module.name)
- .select(Workspace.name)
- .where(Module.app_name == app_name)
- .run()
- )
- if r[0] in allowed_pages
- ],
+ workspaces=workspaces,
)
)
diff --git a/frappe/desk/desktop.py b/frappe/desk/desktop.py
index 13865eadde..97d5726650 100644
--- a/frappe/desk/desktop.py
+++ b/frappe/desk/desktop.py
@@ -473,6 +473,9 @@ def get_workspace_sidebar_items():
if page["name"] in workspace_visibilty:
page["visibility"] = workspace_visibilty[page["name"]]
+ if not page["app"] and page["module"]:
+ page["app"] = frappe.db.get_value("Module Def", page["module"], "app_name")
+
except frappe.PermissionError:
pass
if private_pages:
diff --git a/frappe/public/icons/lucide.svg b/frappe/public/icons/lucide.svg
new file mode 100644
index 0000000000..b68d084662
--- /dev/null
+++ b/frappe/public/icons/lucide.svg
@@ -0,0 +1,4593 @@
+
+
+
diff --git a/frappe/public/icons/timeless/icons.svg b/frappe/public/icons/timeless/icons.svg
index 53549e67a1..b1b4ecd5b1 100644
--- a/frappe/public/icons/timeless/icons.svg
+++ b/frappe/public/icons/timeless/icons.svg
@@ -6,9 +6,11 @@ Instructions:
3. Don't set stroke, fill colour
4. Use viewport 24 24
+Tip: use lucide.svg in /icons for all downloaded icons
+
-->
-