From 867b5f71a188c99960030e78d3bea7d0d5ecf5bc Mon Sep 17 00:00:00 2001 From: gsinghpal Date: Mon, 20 Apr 2026 01:04:49 -0400 Subject: [PATCH] fix(fusion_accounting): unified Accounting menu under one root, hide migration when Enterprise gone User reported two UX problems after the Enterprise uninstall: 1. Each Fusion sub-module showed up as its own standalone app in the launcher (Bank Reconciliation, Financial Reports, Asset Management, Customer Follow-ups, Fusion AI). Should look like ONE Accounting app. 2. Clicking the 'Fusion Accounting' app still opened the migration wizard even though Enterprise had been uninstalled and there was nothing to migrate. Fix: - Move all Fusion sub-module roots under the Community account.menu_finance hierarchy: * Bank Reconciliation \u2192 Accounting > Bank Reconciliation * Asset Management \u2192 Accounting > Asset Management * Financial Reports \u2192 Reporting > Financial Reports * Follow-ups \u2192 Customers > Follow-ups * Fusion AI \u2192 Configuration > Fusion AI * Migrate from Ent. \u2192 Configuration > Migrate from Enterprise - Rename Community's 'Invoicing' top-level menu to 'Accounting' (what Enterprise's accountant module did). Set the Fusion icon on it. This rename lives in the meta-module so it only fires when the full suite is installed. - Add second computed group 'group_fusion_show_when_enterprise_present' (inverse of the existing 'absent' group). Migration menus are gated by this group, so they auto-hide once Enterprise is uninstalled. - _fusion_recompute_coexistence_group now maintains both groups in lockstep. - Meta-module now also depends on l10n_ca, hr_payroll, ocr, documents (the Phase 6/7 sub-modules) for one-click full-suite install. - Fusion AI menu's old parent ('accountant.menu_accounting') was deleted with the Enterprise uninstall \u2014 reparented under Configuration. Result: single 'Accounting' top-level menu containing the standard V19 Community structure (Dashboard / Customers / Vendors / Accounting / Reporting / Configuration), with all Fusion features slotted into the appropriate sub-section. Verified live on westin-v19: 6 separate Fusion top-level menus collapsed to 1; coexistence groups recomputed (absent=10 users, present=0 users); 604/604 tests pass. Version bump: all touched modules \u2192 19.0.1.1.0. Made-with: Cursor --- fusion_accounting/__manifest__.py | 40 ++++++++++++------- fusion_accounting/data/menu_overrides.xml | 21 ++++++++++ fusion_accounting_ai/__manifest__.py | 2 +- fusion_accounting_ai/views/menus.xml | 9 +++-- fusion_accounting_assets/__manifest__.py | 2 +- fusion_accounting_assets/views/menu_views.xml | 7 ++-- fusion_accounting_bank_rec/__manifest__.py | 2 +- .../views/menu_views.xml | 12 +++--- fusion_accounting_core/__manifest__.py | 2 +- fusion_accounting_core/models/res_users.py | 40 +++++++++++++++---- .../security/fusion_accounting_security.xml | 8 ++++ fusion_accounting_followup/__manifest__.py | 2 +- .../views/menu_views.xml | 9 +++-- fusion_accounting_migration/__manifest__.py | 2 +- .../wizards/migration_wizard_views.xml | 30 +++++++++----- fusion_accounting_reports/__manifest__.py | 2 +- .../views/menu_views.xml | 6 ++- 17 files changed, 139 insertions(+), 57 deletions(-) create mode 100644 fusion_accounting/data/menu_overrides.xml diff --git a/fusion_accounting/__manifest__.py b/fusion_accounting/__manifest__.py index 26078ee5..bc908bbb 100644 --- a/fusion_accounting/__manifest__.py +++ b/fusion_accounting/__manifest__.py @@ -1,26 +1,30 @@ { 'name': 'Fusion Accounting', - 'version': '19.0.1.0.4', + 'version': '19.0.1.1.0', 'category': 'Accounting/Accounting', 'sequence': 25, - 'summary': 'Meta-module that installs the full Fusion Accounting suite (core, AI, migration; bank rec, reports, etc. as later sub-modules ship).', + 'summary': 'Meta-module that installs the full Fusion Accounting suite as a Community-edition replacement for Odoo Enterprise accounting.', 'description': """ Fusion Accounting (Meta-Module) =============================== -One-click install of the entire Fusion Accounting suite. +One-click install of the entire Fusion Accounting suite \u2014 a Community-edition +replacement for Odoo Enterprise's accounting modules. -Currently installs: -- fusion_accounting_core Shared schema, security, runtime helpers -- fusion_accounting_ai AI Co-Pilot (Claude/GPT) -- fusion_accounting_migration Transitional Enterprise->Fusion data migration -- fusion_accounting_bank_rec AI-assisted bank reconciliation (Phase 1) -- fusion_accounting_reports AI-augmented financial reports (Phase 2) -- fusion_accounting_assets AI-augmented asset management (Phase 3) -- fusion_accounting_followup AI-augmented customer follow-ups (Phase 4) +Sub-modules installed: +- fusion_accounting_core Shared schema, security, runtime helpers +- fusion_accounting_ai AI Co-Pilot (Claude/GPT/local LLM) +- fusion_accounting_migration Transitional Enterprise->Fusion data migration +- fusion_accounting_bank_rec AI-assisted bank reconciliation +- fusion_accounting_reports AI-augmented financial reports +- fusion_accounting_assets AI-augmented asset management +- fusion_accounting_followup AI-augmented customer follow-ups +- fusion_accounting_l10n_ca Canadian reports + tax return tracking +- fusion_accounting_hr_payroll Payroll \u2192 GL bridge (replaces hr_payroll_account) +- fusion_accounting_ocr Tesseract + LLM invoice OCR +- fusion_accounting_documents Documents app \u2194 invoice bridge -Future sub-modules (added per the roadmap as each Phase ships): -- fusion_accounting_dashboard (Phase 5) -- fusion_accounting_budget (Phase 6) +Renames the Community "Invoicing" top-level menu to "Accounting" and slots +all Fusion sub-features as sub-menus, mirroring the Odoo Enterprise UX. Built by Nexa Systems Inc. """, @@ -37,8 +41,14 @@ Built by Nexa Systems Inc. 'fusion_accounting_reports', 'fusion_accounting_assets', 'fusion_accounting_followup', + 'fusion_accounting_l10n_ca', + 'fusion_accounting_hr_payroll', + 'fusion_accounting_ocr', + 'fusion_accounting_documents', + ], + 'data': [ + 'data/menu_overrides.xml', ], - 'data': [], 'installable': True, 'application': True, 'license': 'OPL-1', diff --git a/fusion_accounting/data/menu_overrides.xml b/fusion_accounting/data/menu_overrides.xml new file mode 100644 index 00000000..18389344 --- /dev/null +++ b/fusion_accounting/data/menu_overrides.xml @@ -0,0 +1,21 @@ + + + + + Accounting + fusion_accounting,static/description/icon.png + 25 + + diff --git a/fusion_accounting_ai/__manifest__.py b/fusion_accounting_ai/__manifest__.py index b52fcce5..6252b578 100644 --- a/fusion_accounting_ai/__manifest__.py +++ b/fusion_accounting_ai/__manifest__.py @@ -1,6 +1,6 @@ { 'name': 'Fusion Accounting AI', - 'version': '19.0.1.0.1', + 'version': '19.0.1.1.0', 'category': 'Accounting/Accounting', 'sequence': 26, 'summary': 'AI Co-Pilot for Odoo accounting (Claude/GPT) with conversational interface, dashboard, rules.', diff --git a/fusion_accounting_ai/views/menus.xml b/fusion_accounting_ai/views/menus.xml index 7a1dc508..949ffc78 100644 --- a/fusion_accounting_ai/views/menus.xml +++ b/fusion_accounting_ai/views/menus.xml @@ -1,10 +1,13 @@ - + diff --git a/fusion_accounting_assets/__manifest__.py b/fusion_accounting_assets/__manifest__.py index 20bc21a1..2d9b49ab 100644 --- a/fusion_accounting_assets/__manifest__.py +++ b/fusion_accounting_assets/__manifest__.py @@ -1,6 +1,6 @@ { 'name': 'Fusion Accounting Assets', - 'version': '19.0.1.0.36', + 'version': '19.0.1.1.0', 'category': 'Accounting/Accounting', 'summary': 'AI-augmented asset management with depreciation schedules.', 'description': """ diff --git a/fusion_accounting_assets/views/menu_views.xml b/fusion_accounting_assets/views/menu_views.xml index b2a8be08..cbf0dacd 100644 --- a/fusion_accounting_assets/views/menu_views.xml +++ b/fusion_accounting_assets/views/menu_views.xml @@ -1,10 +1,11 @@ - + diff --git a/fusion_accounting_bank_rec/__manifest__.py b/fusion_accounting_bank_rec/__manifest__.py index 5a052d9c..2c872d78 100644 --- a/fusion_accounting_bank_rec/__manifest__.py +++ b/fusion_accounting_bank_rec/__manifest__.py @@ -1,6 +1,6 @@ { 'name': 'Fusion Accounting — Bank Reconciliation', - 'version': '19.0.1.0.26', + 'version': '19.0.1.1.0', 'category': 'Accounting/Accounting', 'sequence': 28, 'summary': 'Native V19 bank reconciliation widget with AI confidence scoring + behavioural learning.', diff --git a/fusion_accounting_bank_rec/views/menu_views.xml b/fusion_accounting_bank_rec/views/menu_views.xml index deb31367..8e935e91 100644 --- a/fusion_accounting_bank_rec/views/menu_views.xml +++ b/fusion_accounting_bank_rec/views/menu_views.xml @@ -20,11 +20,14 @@ - + - Fusion: Show menus when Enterprise absent Computed group. Membership: all internal users when no Enterprise accounting module is installed. Used to hide fusion sub-module menus that would conflict with Enterprise UIs. + + + + Fusion: Show menus when Enterprise present + Computed group. Membership: all internal users WHEN at least one Enterprise accounting module is installed. Used to hide migration/transitional UIs that are irrelevant once Enterprise has been uninstalled. + diff --git a/fusion_accounting_followup/__manifest__.py b/fusion_accounting_followup/__manifest__.py index 4c37bdaf..7bfab96e 100644 --- a/fusion_accounting_followup/__manifest__.py +++ b/fusion_accounting_followup/__manifest__.py @@ -1,6 +1,6 @@ { 'name': 'Fusion Accounting Follow-up', - 'version': '19.0.1.0.30', + 'version': '19.0.1.1.0', 'category': 'Accounting/Accounting', 'summary': 'AI-augmented customer follow-ups (dunning) for unpaid invoices.', 'description': """ diff --git a/fusion_accounting_followup/views/menu_views.xml b/fusion_accounting_followup/views/menu_views.xml index 5d65d199..a7fb5810 100644 --- a/fusion_accounting_followup/views/menu_views.xml +++ b/fusion_accounting_followup/views/menu_views.xml @@ -1,10 +1,11 @@ - + diff --git a/fusion_accounting_migration/__manifest__.py b/fusion_accounting_migration/__manifest__.py index e6086d8d..c278a4c8 100644 --- a/fusion_accounting_migration/__manifest__.py +++ b/fusion_accounting_migration/__manifest__.py @@ -1,6 +1,6 @@ { 'name': 'Fusion Accounting Migration', - 'version': '19.0.1.0.0', + 'version': '19.0.1.1.0', 'category': 'Accounting/Accounting', 'sequence': 27, 'summary': 'Transitional module: migrates Odoo Enterprise accounting data to Fusion Accounting tables before Enterprise uninstall.', diff --git a/fusion_accounting_migration/wizards/migration_wizard_views.xml b/fusion_accounting_migration/wizards/migration_wizard_views.xml index 46f452f7..02ba344b 100644 --- a/fusion_accounting_migration/wizards/migration_wizard_views.xml +++ b/fusion_accounting_migration/wizards/migration_wizard_views.xml @@ -27,21 +27,29 @@ + - + + groups="fusion_accounting_core.group_fusion_show_when_enterprise_present"/> diff --git a/fusion_accounting_reports/__manifest__.py b/fusion_accounting_reports/__manifest__.py index a5c7f068..9a73b6da 100644 --- a/fusion_accounting_reports/__manifest__.py +++ b/fusion_accounting_reports/__manifest__.py @@ -1,6 +1,6 @@ { 'name': 'Fusion Accounting Reports', - 'version': '19.0.1.0.38', + 'version': '19.0.1.1.0', 'category': 'Accounting/Accounting', 'summary': 'AI-augmented financial reports (P&L, balance sheet, trial balance, GL).', 'description': """ diff --git a/fusion_accounting_reports/views/menu_views.xml b/fusion_accounting_reports/views/menu_views.xml index 84f4a87a..1c291af1 100644 --- a/fusion_accounting_reports/views/menu_views.xml +++ b/fusion_accounting_reports/views/menu_views.xml @@ -1,9 +1,11 @@ +