fix(phase2): restructure fp_menu.xml so buckets defined before children

Within fp_menu.xml itself, the menu_fp_replenishment_rules entry
referenced menu_fp_config_materials_tanks which was defined later in
the same file. Odoo's data loader is strictly top-down within a file.

Reorganized by section: 1) root, 2) Configuration + 7 buckets,
3) Compliance hub, 4) Operations parent, 5) all child menus (referencing
parents already defined above).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
gsinghpal
2026-04-27 22:48:06 -04:00
parent 62c1315997
commit 46715410a9

View File

@@ -3,12 +3,20 @@
Copyright 2026 Nexa Systems Inc.
License OPL-1 (Odoo Proprietary License v1.0)
Part of the Fusion Plating product family.
Top-level menu structure for the Plating app. Order in this file
matters — Odoo's data loader is strictly sequential, so every
parent menu must be defined BEFORE any child that references it
by xmlid. Sections in declaration order:
1. Root (menu_fp_root) + landing-action wiring
2. Configuration parent (menu_fp_config) + the 7 Phase-2 buckets
3. Compliance hub
4. Operations parent
5. All children of all three roots above (in any order)
-->
<odoo>
<!-- ===== ROOT APP MENU =====
Landing action wired via the resolver server action below.
Per-user override > company default > Sale Orders fallback. -->
<!-- ===== 1. ROOT APP MENU ===== -->
<menuitem id="menu_fp_root"
name="Plating"
sequence="46"
@@ -16,22 +24,64 @@
action="action_fp_resolve_plating_landing"
groups="group_fusion_plating_operator"/>
<!-- ===== Compliance hub (Phase 1) =====
Bundles General Compliance + Safety + Aerospace + Nuclear + CGP
under one top-level. Each vertical's existing root menu is
re-parented here in its own module. -->
<!-- ===== 2. CONFIGURATION + 7 Phase-2 buckets ===== -->
<menuitem id="menu_fp_config"
name="Configuration"
parent="menu_fp_root"
sequence="90"
groups="group_fusion_plating_manager"/>
<menuitem id="menu_fp_config_shop_setup"
name="Shop Setup"
parent="menu_fp_config"
sequence="10"/>
<menuitem id="menu_fp_config_recipes_steps"
name="Recipes &amp; Steps"
parent="menu_fp_config"
sequence="20"/>
<menuitem id="menu_fp_config_materials_tanks"
name="Materials &amp; Tanks"
parent="menu_fp_config"
sequence="30"/>
<menuitem id="menu_fp_config_workforce"
name="Workforce"
parent="menu_fp_config"
sequence="40"/>
<menuitem id="menu_fp_config_quality_docs"
name="Quality &amp; Documents"
parent="menu_fp_config"
sequence="50"/>
<menuitem id="menu_fp_config_pricing_billing"
name="Pricing &amp; Billing"
parent="menu_fp_config"
sequence="60"/>
<menuitem id="menu_fp_config_reference_data"
name="Reference Data"
parent="menu_fp_config"
sequence="70"/>
<!-- ===== 3. COMPLIANCE HUB (Phase 1) ===== -->
<menuitem id="menu_fp_compliance_hub"
name="Compliance"
parent="menu_fp_root"
sequence="50"
groups="group_fusion_plating_supervisor"/>
<!-- ===== OPERATIONS ===== -->
<!-- ===== 4. OPERATIONS ===== -->
<menuitem id="menu_fp_operations"
name="Operations"
parent="menu_fp_root"
sequence="18"/>
<!-- ===== 5. CHILD MENUS ===== -->
<!-- Operations children -->
<menuitem id="menu_fp_process_recipes"
name="Process Recipes"
parent="menu_fp_operations"
@@ -68,6 +118,7 @@
action="action_fp_replenishment_suggestion"
sequence="40"/>
<!-- Configuration children (referencing the 7 buckets above) -->
<menuitem id="menu_fp_replenishment_rules"
name="Replenishment Rules"
parent="menu_fp_config_materials_tanks"
@@ -80,53 +131,6 @@
action="action_fp_operator_cert"
sequence="20"/>
<!-- ===== CONFIGURATION ===== -->
<menuitem id="menu_fp_config"
name="Configuration"
parent="menu_fp_root"
sequence="90"
groups="group_fusion_plating_manager"/>
<!-- Phase 2 — group the ~36 flat configuration entries into 6
themed folders + Settings (sibling, stays at top). Existing
menu IDs are unchanged so bookmarks / data refs still work;
each child just moves to a new parent. -->
<menuitem id="menu_fp_config_shop_setup"
name="Shop Setup"
parent="menu_fp_config"
sequence="10"/>
<menuitem id="menu_fp_config_recipes_steps"
name="Recipes &amp; Steps"
parent="menu_fp_config"
sequence="20"/>
<menuitem id="menu_fp_config_materials_tanks"
name="Materials &amp; Tanks"
parent="menu_fp_config"
sequence="30"/>
<menuitem id="menu_fp_config_workforce"
name="Workforce"
parent="menu_fp_config"
sequence="40"/>
<menuitem id="menu_fp_config_quality_docs"
name="Quality &amp; Documents"
parent="menu_fp_config"
sequence="50"/>
<menuitem id="menu_fp_config_pricing_billing"
name="Pricing &amp; Billing"
parent="menu_fp_config"
sequence="60"/>
<menuitem id="menu_fp_config_reference_data"
name="Reference Data"
parent="menu_fp_config"
sequence="70"/>
<menuitem id="menu_fp_facilities"
name="Facilities"
parent="menu_fp_config_shop_setup"