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>
Fusion Plating — Safety (EHS)
Part of the Fusion Plating product family by Nexa Systems Inc.
This add-on layers a process-agnostic Environmental, Health and Safety
workspace on top of fusion_plating. It gives a plating shop a single
place to manage day-to-day occupational health and safety obligations
without depending on any jurisdiction-specific regulatory pack.
Workspaces
| Workspace | Purpose |
|---|---|
| SDS Library | Safety Data Sheet repository with version, hazard class, GHS pictograms, language, expiry tracking, and PDF attachment. |
| Chemical Inventory | Physical chemical containers with storage location, on-hand quantity, reorder point, and incompatibility relations. |
| Training Records | Per-employee training completions with auto-computed expiry and current/expiring/expired status. |
| Training Types | Master catalogue of training courses (WHMIS, TDG, first-aid, LOTO, confined space, etc.) with validity windows. |
| Exposure Monitoring | Air, biological, noise, and vibration sampling events with OEL reference and percent-of-limit. |
| JHSC | Joint Health & Safety Committee with worker and management reps, plus a meeting register. |
| Incident Register | Injury, near-miss, first-aid, lost-time, medical, property-damage, and environmental events with investigation, root cause, corrective action, and WSIB Form 7 flagging. |
| PPE Issuance | Per-employee PPE issuance log with replacement scheduling. |
Installation
This module depends on fusion_plating, hr, and product.
docker exec odoo-dev-app odoo -d fusion-dev -u fusion_plating_safety --stop-after-init
Conventions
- All field names on extended base Odoo models use the
x_fc_prefix. - Security groups are reused from
fusion_plating(Operator / Supervisor / Manager). - All copy is Canadian English.
- Theme-aware SCSS uses CSS variables only — no hex colours.
Copyright (c) 2026 Nexa Systems Inc. All rights reserved. License: OPL-1 (Odoo Proprietary License v1.0)