From 5437e895de04f294292e7f1d9c8739cceec5cc87 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Mon, 23 Sep 2024 20:42:38 +0530 Subject: [PATCH 1/6] fix(minor): set default app in module and workspace --- frappe/core/doctype/module_def/module_def.py | 6 ++++++ frappe/desk/doctype/workspace/workspace.py | 5 +++++ frappe/patches.txt | 1 + 3 files changed, 12 insertions(+) diff --git a/frappe/core/doctype/module_def/module_def.py b/frappe/core/doctype/module_def/module_def.py index e44fa559df..7fee8f2b12 100644 --- a/frappe/core/doctype/module_def/module_def.py +++ b/frappe/core/doctype/module_def/module_def.py @@ -26,6 +26,12 @@ class ModuleDef(Document): restrict_to_domain: DF.Link | None # end: auto-generated types + def validate(self): + from frappe.modules.utils import get_module_app + + if not self.app_name: + self.app_name = get_module_app(self.name) + def on_update(self): """If in `developer_mode`, create folder for module and add in `modules.txt` of app if missing.""" diff --git a/frappe/desk/doctype/workspace/workspace.py b/frappe/desk/doctype/workspace/workspace.py index 05a31af5c1..da36b5fd32 100644 --- a/frappe/desk/doctype/workspace/workspace.py +++ b/frappe/desk/doctype/workspace/workspace.py @@ -85,6 +85,11 @@ class Workspace(Document): if d.link_type == "Report" and d.is_query_report != 1: d.report_ref_doctype = frappe.get_value("Report", d.link_to, "ref_doctype") + if not self.app and self.module: + from frappe.modules.utils import get_module_app + + self.app = get_module_app(self.module) + def clear_cache(self): super().clear_cache() if self.for_user: diff --git a/frappe/patches.txt b/frappe/patches.txt index 3f7c0bcdbc..bcce73ede8 100644 --- a/frappe/patches.txt +++ b/frappe/patches.txt @@ -240,3 +240,4 @@ frappe.patches.v16_0.switch_default_sort_order frappe.integrations.doctype.oauth_client.patches.set_default_allowed_role_in_oauth_client execute:frappe.db.set_single_value("Workspace Settings", "workspace_setup_completed", 1) frappe.patches.v16_0.add_app_launcher_in_navbar_settings +frappe.desk.doctype.workspace.patches.update_app From 7acf1fd346447a2281fff8d884218552b646ee91 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Mon, 23 Sep 2024 20:43:12 +0530 Subject: [PATCH 2/6] fix(minor): set default app in module and workspace --- .../doctype/workspace/patches/update_app.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 frappe/desk/doctype/workspace/patches/update_app.py diff --git a/frappe/desk/doctype/workspace/patches/update_app.py b/frappe/desk/doctype/workspace/patches/update_app.py new file mode 100644 index 0000000000..c99c06b164 --- /dev/null +++ b/frappe/desk/doctype/workspace/patches/update_app.py @@ -0,0 +1,19 @@ +# update app in `Module Def` and `Workspace` + +import frappe +from frappe.modules.utils import get_module_app + + +def execute(): + for module in frappe.get_all("Module Def", ["name", "app_name"]): + if not module.app_name: + frappe.db.set_value("Module Def", module.name, get_module_app(module.name)) + + for workspace in frappe.get_all("Workspace", ["name", "module", "app"]): + if not workspace.app and workspace.module: + frappe.db.set_value( + "Workspace", + workspace.name, + "app", + frappe.db.get_value("Module Def", workspace.module, "app_name"), + ) From dc21fbcb563a7f61a01b4667bfd0f8cf22c15ce6 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Mon, 23 Sep 2024 20:50:43 +0530 Subject: [PATCH 3/6] fix(minor): set default app as frappe in workspace if no app or module defined --- frappe/desk/doctype/workspace/workspace.py | 2 +- frappe/public/js/frappe/views/workspace/workspace.js | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/frappe/desk/doctype/workspace/workspace.py b/frappe/desk/doctype/workspace/workspace.py index da36b5fd32..946dc87451 100644 --- a/frappe/desk/doctype/workspace/workspace.py +++ b/frappe/desk/doctype/workspace/workspace.py @@ -267,7 +267,7 @@ def new_page(new_page): doc = frappe.new_doc("Workspace") doc.title = page.get("title") - doc.icon = page.get("icon") or "dashboard" + doc.icon = page.get("icon") or "grid" doc.indicator_color = page.get("indicator_color") doc.content = page.get("content") doc.parent_page = page.get("parent_page") diff --git a/frappe/public/js/frappe/views/workspace/workspace.js b/frappe/public/js/frappe/views/workspace/workspace.js index f6ece93445..eea7563bb6 100644 --- a/frappe/public/js/frappe/views/workspace/workspace.js +++ b/frappe/public/js/frappe/views/workspace/workspace.js @@ -200,8 +200,13 @@ frappe.views.Workspace = class Workspace { let current_page = this.sidebar.all_pages.filter((p) => p.name == page.name)[0]; this._page = current_page; - let app = - this._page.app || frappe.boot.module_app[frappe.router.slug(this._page.module)]; + + // set app + let app = this._page.app; + if (!app && this._page.module) { + app = frappe.boot.module_app[frappe.router.slug(this._page.module)]; + } + if (!app) app = "frappe"; if (typeof current_page.content == "string") { current_page.content = JSON.parse(current_page.content); From f24f327596777d355c73ad4ea39eff2ac0818843 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Mon, 23 Sep 2024 20:52:29 +0530 Subject: [PATCH 4/6] fix(minor): workspace/patches/update_app.py --- frappe/desk/doctype/workspace/patches/update_app.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frappe/desk/doctype/workspace/patches/update_app.py b/frappe/desk/doctype/workspace/patches/update_app.py index c99c06b164..4e2659661a 100644 --- a/frappe/desk/doctype/workspace/patches/update_app.py +++ b/frappe/desk/doctype/workspace/patches/update_app.py @@ -7,7 +7,7 @@ from frappe.modules.utils import get_module_app def execute(): for module in frappe.get_all("Module Def", ["name", "app_name"]): if not module.app_name: - frappe.db.set_value("Module Def", module.name, get_module_app(module.name)) + frappe.db.set_value("Module Def", module.name, "app_name", get_module_app(module.name)) for workspace in frappe.get_all("Workspace", ["name", "module", "app"]): if not workspace.app and workspace.module: From 384f4c9e211a47da55740e2c4c2aea746ee33d3e Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Mon, 23 Sep 2024 21:03:21 +0530 Subject: [PATCH 5/6] fix(minor): don't set default app for custom modules --- frappe/core/doctype/module_def/module_def.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frappe/core/doctype/module_def/module_def.py b/frappe/core/doctype/module_def/module_def.py index 7fee8f2b12..e00fb853d5 100644 --- a/frappe/core/doctype/module_def/module_def.py +++ b/frappe/core/doctype/module_def/module_def.py @@ -29,7 +29,7 @@ class ModuleDef(Document): def validate(self): from frappe.modules.utils import get_module_app - if not self.app_name: + if not self.app_name and not self.custom: self.app_name = get_module_app(self.name) def on_update(self): From 5099041947d3e726b7188920320e20ef9a82baaf Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Mon, 23 Sep 2024 21:12:02 +0530 Subject: [PATCH 6/6] fix(minor): workspace/patches/update_app.py --- frappe/desk/doctype/workspace/patches/update_app.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frappe/desk/doctype/workspace/patches/update_app.py b/frappe/desk/doctype/workspace/patches/update_app.py index 4e2659661a..00b0620c1f 100644 --- a/frappe/desk/doctype/workspace/patches/update_app.py +++ b/frappe/desk/doctype/workspace/patches/update_app.py @@ -5,7 +5,7 @@ from frappe.modules.utils import get_module_app def execute(): - for module in frappe.get_all("Module Def", ["name", "app_name"]): + for module in frappe.get_all("Module Def", ["name", "app_name"], filters=dict(custom=0)): if not module.app_name: frappe.db.set_value("Module Def", module.name, "app_name", get_module_app(module.name))