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>
This commit is contained in:
gsinghpal
2026-05-24 01:35:11 -04:00
parent c34dfce6c3
commit 36cd4341a7
28 changed files with 136 additions and 37 deletions

View File

@@ -5,7 +5,7 @@
{
'name': 'Fusion Plating — Quality (QMS)',
'version': '19.0.6.6.2',
'version': '19.0.6.6.3',
'category': 'Manufacturing/Plating',
'summary': 'Native QMS for plating shops: NCR, CAPA, calibration, AVL, FAIR, '
'internal audits, customer specs, document control. CE + EE compatible.',

View File

@@ -11,7 +11,7 @@
name="Quality"
parent="fusion_plating.menu_fp_root"
sequence="30"
groups="fusion_plating.group_fusion_plating_operator"/>
groups="fusion_plating.group_fp_manager"/>
<menuitem id="menu_fp_quality_hold"
name="Quality Holds"
@@ -47,7 +47,8 @@
name="Internal Audits"
parent="menu_fp_quality"
action="action_fp_audit"
sequence="40"/>
sequence="40"
groups="fusion_plating.group_fp_quality_manager"/>
<menuitem id="menu_fp_quality_doc_control"
name="Document Control"
@@ -79,12 +80,14 @@
name="Specifications"
parent="menu_fp_quality"
action="action_fp_customer_spec"
sequence="70"/>
sequence="70"
groups="fusion_plating.group_fp_quality_manager"/>
<menuitem id="menu_fp_config_avl"
name="Approved Vendor List"
parent="fusion_plating.menu_fp_config_quality_docs"
action="action_fp_avl"
sequence="20"/>
sequence="20"
groups="fusion_plating.group_fp_quality_manager"/>
</odoo>