feat(fusion_plating): kind.area_kind drives Shop Floor column routing
Add required area_kind Selection to fp.step.kind so each kind self-declares which plant-view column its steps belong in. Replaces the hardcoded _STEP_KIND_TO_AREA dict (removed in fp_job_step.py in the follow-up commit). - New `blast` kind for the Blasting column (sequence=35) - 26 existing kind records seeded with area_kind in XML - Pre-migrate 19.0.21.2.0 seeds existing rows BEFORE NOT NULL hits the schema; also activates derack/demask/gating that were deactivated in 19.0.20.6.0 but are needed for the full taxonomy - Step Kind form + list views surface area_kind (badge + chip) - Step Kind search adds Group By Shop Floor Column - Simple Editor kind picker shows "Masking — Masking column" suffix so authors see the routing at pick time - Add Hot Water Porosity Test (A-15) + Final Inspection / Packaging templates (used by 7+3 recipe nodes that previously had no library entry) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -34,6 +34,32 @@ class FpStepKind(models.Model):
|
||||
string='Icon',
|
||||
default='fa-cog',
|
||||
)
|
||||
# 2026-05-24 — Shop Floor live-step fix.
|
||||
# Each kind self-declares which plant-view column its steps land in.
|
||||
# Replaces the hardcoded _STEP_KIND_TO_AREA dict (removed from
|
||||
# fusion_plating_jobs/models/fp_job_step.py). Pre-migrate
|
||||
# 19.0.21.2.0 seeds existing rows before NOT NULL hits the schema.
|
||||
area_kind = fields.Selection(
|
||||
[
|
||||
('receiving', 'Receiving'),
|
||||
('masking', 'Masking'),
|
||||
('blasting', 'Blasting'),
|
||||
('racking', 'Racking'),
|
||||
('plating', 'Plating'),
|
||||
('baking', 'Baking'),
|
||||
('de_racking', 'De-Racking'),
|
||||
('inspection', 'Final Inspection'),
|
||||
('shipping', 'Shipping'),
|
||||
],
|
||||
string='Shop Floor Column',
|
||||
required=True,
|
||||
index=True,
|
||||
tracking=True,
|
||||
help='Determines which column on the Shop Floor plant kanban shows '
|
||||
'cards whose active step uses this kind. Step kinds drive '
|
||||
'routing automatically — picking a kind tells the system both '
|
||||
'what gates fire AND where the card lives.',
|
||||
)
|
||||
company_id = fields.Many2one(
|
||||
'res.company', string='Company',
|
||||
default=lambda self: self.env.company,
|
||||
|
||||
Reference in New Issue
Block a user