Files
Odoo-Modules/fusion_plating/fusion_plating_compliance/views/fp_menu.xml
gsinghpal 36cd4341a7 feat(plating-menu): Layer 1+2 — explicit groups on top-level menus + submenus
Phase D Tasks D1-D4 of permissions overhaul. Adds explicit groups=
attributes to:
- 9 top-level Plating menus (matrix per spec Section 2.E)
- Quality submenus: Audits, Customer Specs, AVL → QM-only
- Compliance hub child submenus (CGP, General, Safety, Aerospace,
  Nuclear) → QM-only
- Operations submenus: Maintenance, Move Log, Labor History → Shop
  Manager+; Replenishment Suggestions → Manager+

Replaces fragile inheritance + action-ACL-based visibility with
explicit per-menu gates. Now every role's menu tree is deterministic.

Also adds fusion_plating/tests/test_menu_visibility.py — per-role
matrix tests using ir.ui.menu.search_count with the test user.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 01:35:11 -04:00

22 lines
2.1 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- Phase 1 — re-parented under fusion_plating.menu_fp_compliance_hub
and renamed to 'General' since the hub is now the top-level Compliance. -->
<menuitem id="menu_fp_compliance_root" name="General"
parent="fusion_plating.menu_fp_compliance_hub" sequence="10"
groups="fusion_plating.group_fp_quality_manager"/>
<menuitem id="menu_fp_compliance_permit" name="Permits" parent="menu_fp_compliance_root" action="action_fp_permit" sequence="10"/>
<menuitem id="menu_fp_compliance_discharge_sample" name="Discharge Samples" parent="menu_fp_compliance_root" action="action_fp_discharge_sample" sequence="20"/>
<menuitem id="menu_fp_compliance_waste_manifest" name="Waste Manifests" parent="menu_fp_compliance_root" action="action_fp_waste_manifest" sequence="30"/>
<menuitem id="menu_fp_compliance_calendar" name="Compliance Calendar" parent="menu_fp_compliance_root" action="action_fp_compliance_event" sequence="40"/>
<menuitem id="menu_fp_compliance_spill_register" name="Spill Register" parent="menu_fp_compliance_root" action="action_fp_spill_register" sequence="50"/>
<menuitem id="menu_fp_compliance_config" name="Reference Data" parent="menu_fp_compliance_root" sequence="100"/>
<menuitem id="menu_fp_compliance_jurisdiction" name="Jurisdictions" parent="menu_fp_compliance_config" action="action_fp_jurisdiction" sequence="10"/>
<menuitem id="menu_fp_compliance_regulator" name="Regulators" parent="menu_fp_compliance_config" action="action_fp_regulator" sequence="20"/>
<menuitem id="menu_fp_compliance_discharge_limit" name="Discharge Limits" parent="menu_fp_compliance_config" action="action_fp_discharge_limit" sequence="30"/>
<menuitem id="menu_fp_compliance_waste_stream" name="Waste Streams" parent="menu_fp_compliance_config" action="action_fp_waste_stream" sequence="40"/>
<menuitem id="menu_fp_compliance_pollutant_inventory" name="Pollutant Inventory" parent="menu_fp_compliance_config" action="action_fp_pollutant_inventory" sequence="50"/>
</odoo>