bridge_mrp._generate_workorders_from_recipe was writing 'description'
on mrp.workorder, which doesn't exist in Odoo 19 — instead the step
instructions now post to each WO's chatter after bulk create, which
is where the operator sees them anyway.
Demo seeder now creates the full WO chain:
- 9 MRP work centres paired with 9 FP work centres (FP-QUEUE, -RACK,
-MASK, -EN, -BAKE, -INSP, -DERACK, -DEMASK, -POSTBAKE) with
costs_hour set so actuals-vs-quoted margin can compute.
- Wires the existing ENP-ALUM-BASIC recipe's 9 operation nodes to
those FP work centres by matching names.
- Links every coating config to the recipe so the auto-assign hook
(mrp.production.action_confirm → _auto_assign_recipe_from_so) has
something to pull.
- Backfills work orders on all existing demo MOs: calls the generator
once recipe is set. For historical (done) MOs, marks all their WOs
done with backdated durations (25-90 min). For the Cyclone active
MO, sets a realistic progression: first WO done, second in progress
(priority: Hot), rest in 'ready'.
Verified: 90 WOs live, 10 per work centre. One MO shows the full
progression state mix. WO Traveller PDF renders (132KB) — both
portrait + landscape variants still work.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>