refactor(jobs): drop (Native) suffix + promote Jobs to top of Plating app

The (Native) suffix was a temporary distinguisher during parallel
coexistence with bridge_mrp. Now that fp.job is THE primary
system, the suffix is just noise. Removed across all 5 menus and
both client-action labels.

Also restructured the Jobs submenu under Plating:
- Renamed root from 'Plating Jobs (Native)' (seq=4, manager-only)
  to just 'Jobs' (seq=2, operator-visible). Now appears right
  below the Plating app header — first-click access for operators.
- All Jobs (was 'Jobs') at seq=20
- Tablet Station at seq=5 (operator entry point)
- Plant Overview at seq=10
- Manager Dashboard at seq=15 (supervisor+ only)
- Steps (renamed from 'Steps (Admin)') at seq=30 (supervisor+ only)
- Work Centres (was 'Work Centres (Native)') in Configuration

Hidden one more legacy menu: bridge_mrp's 'Production Priorities'
(mrp.workorder ordering UI — fp.job has its own priority field).

Manifest unchanged (no new files); skipping version bump.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
gsinghpal
2026-04-25 06:19:14 -04:00
parent 5130e51941
commit 667654bd4e
4 changed files with 35 additions and 31 deletions

View File

@@ -1,33 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<!-- Native job model menus, nested INSIDE the existing Plating app
(menu_fp_root). Manager-only during the migration period so
operators don't see two parallel job lists.
Naming uses "(Native)" suffix to distinguish from the legacy
MO/WO menus that bridge_mrp ships under Operations. After
cutover and legacy uninstall, the suffix can be dropped. -->
<!-- Native job model menus, top of the Plating app. Sequence 2
puts this right after the (currently unbuilt) dashboard slot
and before Sales — operators and managers reach Jobs in one
click. -->
<menuitem id="menu_fp_jobs_native_root"
name="Plating Jobs (Native)"
name="Jobs"
parent="menu_fp_root"
sequence="4"
groups="fusion_plating.group_fusion_plating_manager"/>
sequence="2"
groups="fusion_plating.group_fusion_plating_operator"/>
<menuitem id="menu_fp_jobs_jobs"
name="Jobs"
name="All Jobs"
parent="menu_fp_jobs_native_root"
action="action_fp_job"
sequence="10"/>
<menuitem id="menu_fp_jobs_steps"
name="Steps (Admin)"
parent="menu_fp_jobs_native_root"
action="action_fp_job_step"
sequence="20"/>
<menuitem id="menu_fp_jobs_steps"
name="Steps"
parent="menu_fp_jobs_native_root"
action="action_fp_job_step"
sequence="30"
groups="fusion_plating.group_fusion_plating_supervisor"/>
<menuitem id="menu_fp_jobs_work_centres"
name="Work Centres (Native)"
name="Work Centres"
parent="menu_fp_config"
action="action_fp_work_centre"
sequence="55"

View File

@@ -12,24 +12,25 @@
XML ids don't exist yet at the time core's menu file is parsed.
-->
<record id="action_job_plant_overview" model="ir.actions.client">
<field name="name">Plant Overview (Native)</field>
<field name="name">Plant Overview</field>
<field name="tag">fp_job_plant_overview</field>
</record>
<record id="action_job_manager_dashboard" model="ir.actions.client">
<field name="name">Manager Dashboard (Native)</field>
<field name="name">Manager Dashboard</field>
<field name="tag">fp_job_manager_dashboard</field>
</record>
<menuitem id="menu_fp_jobs_plant_overview"
name="Plant Overview (Native)"
name="Plant Overview"
parent="fusion_plating.menu_fp_jobs_native_root"
action="action_job_plant_overview"
sequence="5"/>
sequence="10"/>
<menuitem id="menu_fp_jobs_manager_dashboard"
name="Manager Dashboard (Native)"
name="Manager Dashboard"
parent="fusion_plating.menu_fp_jobs_native_root"
action="action_job_manager_dashboard"
sequence="7"/>
sequence="15"
groups="fusion_plating.group_fusion_plating_supervisor"/>
</odoo>

View File

@@ -1,19 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<!--
Phase 6 — Tablet Station (Native) client action + menu entry.
The OWL component is registered as fp_job_tablet in
static/src/js/job_tablet.js. Sequence 3 puts it at the top of
the Plating Jobs (Native) submenu (above Jobs at 10).
Tablet Station — touchscreen-friendly OWL client. Sequence 5
puts it at the top of the Jobs submenu (just below All Jobs at 20).
-->
<record id="action_job_tablet" model="ir.actions.client">
<field name="name">Tablet Station (Native)</field>
<field name="name">Tablet Station</field>
<field name="tag">fp_job_tablet</field>
</record>
<menuitem id="menu_fp_jobs_tablet"
name="Tablet Station (Native)"
name="Tablet Station"
parent="fusion_plating.menu_fp_jobs_native_root"
action="action_job_tablet"
sequence="3"/>
sequence="5"/>
</odoo>

View File

@@ -22,4 +22,11 @@
<record id="fusion_plating_shopfloor.menu_fp_shopfloor_tablet" model="ir.ui.menu">
<field name="group_ids" eval="[(6, 0, [ref('fusion_plating_jobs.group_fusion_plating_legacy_menus')])]"/>
</record>
<!-- bridge_mrp: Production Priorities is mrp.workorder ordering UI;
fp.job has its own priority field on the header. Hidden from
operators / supervisors / managers; only the legacy group sees it. -->
<record id="fusion_plating_bridge_mrp.menu_fp_workorder_priority" model="ir.ui.menu">
<field name="group_ids" eval="[(6, 0, [ref('fusion_plating_jobs.group_fusion_plating_legacy_menus')])]"/>
</record>
</odoo>