fix(shopfloor): legacy client actions redirect to fp_plant_kanban

The plant-view rollout left two legacy ir.actions.client data records
still claiming tag='fp_shopfloor_landing':
  - action_fp_plant_overview        (Plant Overview)
  - action_fp_shopfloor_tablet      (Shop Floor — Tablet Station)

The landing-action resolver dispatched the new view correctly when the
user clicked the Plating root menu, but bookmarks / breadcrumbs /
QR-scan landings / direct URLs still routed through these legacy
actions and loaded the per-step kanban (OWL component is still
registered for back-compat).

Flipping their tag to fp_plant_kanban means every entry point now
opens the new view. The legacy fp_shopfloor_landing OWL component
stays registered (no code removed) but no XMLID points at it
anymore — safe to delete in a future cleanup.

Also documented this as a durable convention in CLAUDE.md under
'Legacy-action redirect (general rule for OWL component swaps)'.

Verified on entech:
  - action 1129 (Shop Floor)     tag: fp_shopfloor_landing → fp_plant_kanban
  - action 1133 (Plant Overview) tag: fp_shopfloor_landing → fp_plant_kanban
  - 3 stale asset bundles cleared
  - Module re-upgraded clean, registry rebuilt in 15.7s

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
gsinghpal
2026-05-23 21:14:33 -04:00
parent a60506a645
commit eb1fd50add
3 changed files with 33 additions and 11 deletions

View File

@@ -521,6 +521,27 @@ UPDATE ir_config_parameter SET value = 'legacy'
Or use Settings → Fusion Plating → Shop Floor Layout. Both surfaces
write the same `ir.config_parameter` key.
### Legacy-action redirect (general rule for OWL component swaps)
When replacing an OWL client-action component with a new one, **don't
just register the new action's XMLID**. There are usually 2-5 legacy
`ir.actions.client` data records scattered across the module pointing
at the old tag (`action_fp_plant_overview`, `action_fp_shopfloor_tablet`,
etc. — every "old bookmarks keep working" record). The landing-action
resolver only sees one entry point. Bookmarks, breadcrumbs, QR-scan
landings, and "Plant Overview" / "Tablet Station" menu items go
through the OTHER actions and load the old component.
**Fix: change every legacy data record's `tag` to the new tag.** Grep
the views/ and data/ dirs for the old tag, and update each `<field
name="tag">` to the new one. The old OWL component stays registered
(no code removed), but no `ir.actions.client` row points at it
anymore. Caught 2026-05-23 when the plant-view rollout dispatched
the resolver correctly but a user clicking via the legacy "Shop Floor"
menu still saw the per-step kanban — `action_fp_shopfloor_tablet`
and `action_fp_plant_overview` were both still hard-coded to
`fp_shopfloor_landing` tag.
## Deployment
### odoo-entech (LXC 111 on pve-worker5)

View File

@@ -8,15 +8,15 @@
<!-- ================================================================== -->
<!-- Client action — was "Plant Overview" (fp_plant_overview). -->
<!-- Phase 3 tablet redesign retargets the tag at the new -->
<!-- fp_shopfloor_landing component (it has an "All Plant" mode that -->
<!-- supersedes the standalone plant overview). Old bookmarks keep -->
<!-- working; the legacy fp_plant_overview OWL component is still -->
<!-- registered. Menu entry removed in fp_menu.xml. -->
<!-- 2026-05-23 plant-view redesign retargets the tag at the new -->
<!-- fp_plant_kanban component so old bookmarks / breadcrumbs / QR-scan -->
<!-- landings flow into the new view. The legacy fp_plant_overview AND -->
<!-- fp_shopfloor_landing OWL components stay registered (no code -->
<!-- removed) but no menu / action XMLID points at them anymore. -->
<!-- ================================================================== -->
<record id="action_fp_plant_overview" model="ir.actions.client">
<field name="name">Plant Overview</field>
<field name="tag">fp_shopfloor_landing</field>
<field name="tag">fp_plant_kanban</field>
<field name="params" eval="{'mode': 'all_plant'}"/>
</record>

View File

@@ -97,14 +97,15 @@
<!-- ================================================================== -->
<!-- Client action — was "Tablet Station" (fp_shopfloor_tablet). -->
<!-- Phase 3 tablet redesign retargets the tag at the new -->
<!-- fp_shopfloor_landing component so old bookmarks keep working. -->
<!-- The legacy fp_shopfloor_tablet OWL component is still registered -->
<!-- (no code removed) but no menu points at it anymore. -->
<!-- 2026-05-23 plant-view redesign retargets the tag at the new -->
<!-- fp_plant_kanban component so old bookmarks / breadcrumbs / QR-scan -->
<!-- landings flow into the new view. The legacy fp_shopfloor_tablet -->
<!-- AND fp_shopfloor_landing OWL components stay registered (no code -->
<!-- removed) but no menu / action XMLID points at them anymore. -->
<!-- ================================================================== -->
<record id="action_fp_shopfloor_tablet" model="ir.actions.client">
<field name="name">Shop Floor</field>
<field name="tag">fp_shopfloor_landing</field>
<field name="tag">fp_plant_kanban</field>
</record>
</odoo>