fix(fusion_accounting): unified Accounting menu under one root, hide migration when Enterprise gone
Some checks failed
fusion_accounting CI / test (fusion_accounting_ai) (push) Has been cancelled
fusion_accounting CI / test (fusion_accounting_core) (push) Has been cancelled
fusion_accounting CI / test (fusion_accounting_migration) (push) Has been cancelled

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
This commit is contained in:
gsinghpal
2026-04-20 01:04:49 -04:00
parent bee5ba4d3f
commit 867b5f71a1
17 changed files with 139 additions and 57 deletions

View File

@@ -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',

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo noupdate="0">
<!--
Top-level "Invoicing" menu rename + visual rebrand.
V19 Community ships this menu as "Invoicing" with the standard
accounting icon. Odoo Enterprise's `accountant` module renames it
to "Accounting" and swaps the icon. We do the same here so that
once Enterprise is uninstalled, the unified menu still presents
as "Accounting" (not "Invoicing") to users.
This file lives in the meta-module so the rename only takes effect
when the full Fusion suite is installed; sub-modules installed
a-la-carte don't change the menu's name.
-->
<record id="account.menu_finance" model="ir.ui.menu">
<field name="name">Accounting</field>
<field name="web_icon">fusion_accounting,static/description/icon.png</field>
<field name="sequence">25</field>
</record>
</odoo>