Files
Odoo-Modules/fusion_plating/fusion_plating_quality/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

94 lines
3.3 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2026 Nexa Systems Inc.
License OPL-1 (Odoo Proprietary License v1.0)
Part of the Fusion Plating product family.
-->
<odoo>
<!-- ===== QUALITY (parent submenu under the Plating app) ===== -->
<menuitem id="menu_fp_quality"
name="Quality"
parent="fusion_plating.menu_fp_root"
sequence="30"
groups="fusion_plating.group_fp_manager"/>
<menuitem id="menu_fp_quality_hold"
name="Quality Holds"
parent="menu_fp_quality"
action="action_fp_quality_hold"
sequence="5"/>
<menuitem id="menu_fp_quality_ncr"
name="NCRs"
parent="menu_fp_quality"
action="action_fp_ncr"
sequence="10"/>
<menuitem id="menu_fp_quality_capa"
name="CAPAs"
parent="menu_fp_quality"
action="action_fp_capa"
sequence="20"/>
<menuitem id="menu_fp_quality_rma"
name="RMAs"
parent="menu_fp_quality"
action="action_fp_rma"
sequence="25"/>
<menuitem id="menu_fp_quality_fair"
name="First Article Inspections"
parent="menu_fp_quality"
action="action_fp_fair"
sequence="30"/>
<menuitem id="menu_fp_quality_audit"
name="Internal Audits"
parent="menu_fp_quality"
action="action_fp_audit"
sequence="40"
groups="fusion_plating.group_fp_quality_manager"/>
<menuitem id="menu_fp_quality_doc_control"
name="Document Control"
parent="menu_fp_quality"
action="action_fp_doc_control"
sequence="50"/>
<!-- Phase 2 — calibration into Materials & Tanks; specs+AVL into Quality & Documents. -->
<menuitem id="menu_fp_config_cal_equipment"
name="Calibration Equipment"
parent="fusion_plating.menu_fp_config_materials_tanks"
action="action_fp_cal_equipment"
sequence="50"/>
<menuitem id="menu_fp_config_cal_event"
name="Calibration Events"
parent="fusion_plating.menu_fp_config_materials_tanks"
action="action_fp_cal_event"
sequence="60"/>
<!-- Promote-Customer-Spec (Phase F) — Specifications is now central
to order entry (estimators add new BAC / AMS / customer codes
when they hit them). Moved out of Configuration (manager-only)
into Quality where the workflow lives. Single menu, accessible
to estimator/supervisor/manager via the Quality top-level.
Old xmlid kept so links / breadcrumbs / search references
continue to resolve. -->
<menuitem id="menu_fp_config_customer_spec"
name="Specifications"
parent="menu_fp_quality"
action="action_fp_customer_spec"
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"
groups="fusion_plating.group_fp_quality_manager"/>
</odoo>