refactor(shopfloor,jobs): consolidate operator UI into shopfloor
Removes the parallel OWL/controller stack I built in fusion_plating_jobs (job_process_tree, job_plant_overview, job_manager_dashboard, job_tablet, job_*.scss, plus parallel controllers and action XML files). Refactors the existing fusion_plating_shopfloor components in place to bind to fp.job / fp.job.step instead of mrp.production / mrp.workorder. End state: - ONE operator UI module (shopfloor) instead of two parallel ones - Existing token system (_fp_shopfloor_tokens.scss) reused as designed - no duplicate jobs tokens - Existing /fp/shopfloor/* RPC URLs preserved (no integration breakage); workorder_id kwargs accepted as legacy aliases for step_id / job_id so older tablet clients keep working - Existing visual designs preserved - only the data layer underneath changed - Process Tree button on fp.job form now points at fusion_plating_shopfloor's fp_process_tree client action - Bake Windows / First-Piece Gates / Bake Oven / Operator Queue models stay where they were - legacy_menu_hide.xml trimmed: only the bridge_mrp Production Priorities entry remains; the 3 shopfloor menus (Manager Desk, Plant Overview, Tablet Station) are now visible (the canonical native consoles) Manifests: - fusion_plating_jobs 19.0.3.1.0 -> 19.0.4.0.0 (consolidation bump, no more bundled JS/SCSS, only job_scan controller retained) - fusion_plating_shopfloor 19.0.14.4.0 -> 19.0.15.0.0 (asset bundle cache-bust + significant controller refactor) Tests pass on entech: 0 failed, 0 errors of 41 tests. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,8 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<odoo>
|
||||
<!--
|
||||
Adds a "Process Tree" button to the fp.job form header, launching
|
||||
the fp_job_process_tree client action with job_id in context.
|
||||
Adds a "Process Tree" button to the fp.job form header, calling
|
||||
fp.job.action_open_process_tree (which launches the canonical
|
||||
fp_process_tree shopfloor client action with job_id in context).
|
||||
|
||||
Hidden while the job is in draft (no recipe-derived steps yet).
|
||||
-->
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<odoo>
|
||||
<!--
|
||||
Phase 6 — operator-facing client actions for the native job model.
|
||||
|
||||
Plant Overview kanban: columns = fp.work.centre, cards = fp.job.step
|
||||
Manager Dashboard: list of in-flight fp.job rows, by state
|
||||
|
||||
Menu items live here (not in fusion_plating core's fp_jobs_menu.xml)
|
||||
because the action records they reference are defined in this
|
||||
module — and fusion_plating_jobs is loaded AFTER core, so the
|
||||
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</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</field>
|
||||
<field name="tag">fp_job_manager_dashboard</field>
|
||||
</record>
|
||||
|
||||
<menuitem id="menu_fp_jobs_plant_overview"
|
||||
name="Plant Overview"
|
||||
parent="fusion_plating.menu_fp_jobs_native_root"
|
||||
action="action_job_plant_overview"
|
||||
sequence="10"/>
|
||||
|
||||
<menuitem id="menu_fp_jobs_manager_dashboard"
|
||||
name="Manager Dashboard"
|
||||
parent="fusion_plating.menu_fp_jobs_native_root"
|
||||
action="action_job_manager_dashboard"
|
||||
sequence="15"
|
||||
groups="fusion_plating.group_fusion_plating_supervisor"/>
|
||||
</odoo>
|
||||
@@ -1,12 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<odoo>
|
||||
<!--
|
||||
fp_job_process_tree client action — opened from the "Process Tree"
|
||||
button on the fp.job form (action_open_process_tree on fp.job)
|
||||
with {'job_id': self.id} in context.
|
||||
-->
|
||||
<record id="action_job_process_tree" model="ir.actions.client">
|
||||
<field name="name">Job Process Tree</field>
|
||||
<field name="tag">fp_job_process_tree</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -1,17 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<odoo>
|
||||
<!--
|
||||
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</field>
|
||||
<field name="tag">fp_job_tablet</field>
|
||||
</record>
|
||||
|
||||
<menuitem id="menu_fp_jobs_tablet"
|
||||
name="Tablet Station"
|
||||
parent="fusion_plating.menu_fp_jobs_native_root"
|
||||
action="action_job_tablet"
|
||||
sequence="5"/>
|
||||
</odoo>
|
||||
@@ -1,26 +1,26 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<odoo noupdate="0">
|
||||
<!-- Restrict legacy MO/WO-bound menus to the hidden 'Plating Legacy
|
||||
Menus' group. The native fp.job menus (under Plating Jobs
|
||||
(Native)) replace these. Original operations menus that don't
|
||||
have a native equivalent yet are left alone.
|
||||
<!-- After the shopfloor consolidation (2026-04-24) the shopfloor
|
||||
operator UIs are the canonical native fp.job / fp.job.step
|
||||
consoles. Only bridge_mrp's Production Priorities menu (still
|
||||
bound to mrp.workorder) remains legacy.
|
||||
|
||||
List intentionally narrow: only menus that have a CLEAR fp.job
|
||||
replacement get hidden. Operations like Recipes, Baths, Tanks,
|
||||
etc. stay visible because there's no native replacement yet. -->
|
||||
The group_fusion_plating_legacy_menus group is preserved so a
|
||||
site that needs to bring legacy menus back can simply add a
|
||||
user to the group. -->
|
||||
|
||||
<!-- fusion_plating_shopfloor: legacy Manager Desk, Plant Overview,
|
||||
Tablet Station — replaced by Manager Dashboard (Native), Plant
|
||||
Overview (Native), Tablet Station (Native) under
|
||||
Plating Jobs (Native). -->
|
||||
<!-- Reset group_ids on the 3 shopfloor menus that used to be
|
||||
hidden — they are now the canonical UIs and should be visible
|
||||
to all users (subject to the original groups= attribute on
|
||||
each menuitem in fusion_plating_shopfloor/views/fp_menu.xml). -->
|
||||
<record id="fusion_plating_shopfloor.menu_fp_shopfloor_manager" model="ir.ui.menu">
|
||||
<field name="group_ids" eval="[(6, 0, [ref('fusion_plating_jobs.group_fusion_plating_legacy_menus')])]"/>
|
||||
<field name="group_ids" eval="[(6, 0, [ref('fusion_plating.group_fusion_plating_manager')])]"/>
|
||||
</record>
|
||||
<record id="fusion_plating_shopfloor.menu_fp_shopfloor_plant_overview" model="ir.ui.menu">
|
||||
<field name="group_ids" eval="[(6, 0, [ref('fusion_plating_jobs.group_fusion_plating_legacy_menus')])]"/>
|
||||
<field name="group_ids" eval="[(6, 0, [])]"/>
|
||||
</record>
|
||||
<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')])]"/>
|
||||
<field name="group_ids" eval="[(6, 0, [])]"/>
|
||||
</record>
|
||||
|
||||
<!-- bridge_mrp: Production Priorities is mrp.workorder ordering UI;
|
||||
|
||||
Reference in New Issue
Block a user