From 41c2f49bd1611778f48578e32d08c7d019bc4a36 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Tue, 1 Jul 2025 18:05:36 +0530 Subject: [PATCH] fix: setup wizard issue --- frappe/desk/page/setup_wizard/setup_wizard.py | 25 +++++++++++++++++-- frappe/patches.txt | 2 +- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/frappe/desk/page/setup_wizard/setup_wizard.py b/frappe/desk/page/setup_wizard/setup_wizard.py index 97d2ee0f61..3fd4b8b307 100755 --- a/frappe/desk/page/setup_wizard/setup_wizard.py +++ b/frappe/desk/page/setup_wizard/setup_wizard.py @@ -187,11 +187,32 @@ def run_setup_success(args): # nosemgrep def get_stages_hooks(args): # nosemgrep stages = [] - for method in frappe.get_hooks("setup_wizard_stages"): - stages += frappe.get_attr(method)(args) + + installed_apps = frappe.get_installed_apps(_ensure_on_bench=True) + for app_name in installed_apps: + setup_wizard_stages = frappe.get_hooks(app_name=app_name).get("setup_wizard_stages") + if not setup_wizard_stages: + continue + + for method in setup_wizard_stages: + _stages = frappe.get_attr(method)(args) + update_app_details_in_stages(_stages, app_name) + stages += _stages + return stages +def update_app_details_in_stages(_stages, app_name): + for stage in _stages: + for key in stage: + if key != "tasks": + continue + + for task in stage[key]: + if task.get("app_name") is None: + task["app_name"] = app_name + + def get_setup_complete_hooks(args): # nosemgrep return [ { diff --git a/frappe/patches.txt b/frappe/patches.txt index c4e85c7ef0..b6374edd7b 100644 --- a/frappe/patches.txt +++ b/frappe/patches.txt @@ -1,5 +1,5 @@ [pre_model_sync] -frappe.patches.v16_0.enable_setup_complete #25-06-2025 re-run-patch +frappe.patches.v16_0.enable_setup_complete #01-07-2025 re-run-patch frappe.patches.v15_0.remove_implicit_primary_key frappe.patches.v12_0.remove_deprecated_fields_from_doctype #3 execute:frappe.utils.global_search.setup_global_search_table()