feat(step-library): full plating workflow coverage + per-recipe configurability + audit
Implements 2026-04-29-step-library-audit-design.md. Bumps fusion_plating to 19.0.18.7.0, fusion_plating_jobs to 19.0.8.12.0, fusion_plating_reports to 19.0.10.2.0. LIBRARY EXPANSION - 8 new Step Kinds: Receiving, Electroclean, Strike, Salt Spray, Adhesion Test, Hardness Test, Packaging, Tank Replenishment - 4 new input types: photo, multi_point_thickness, bath_chemistry_panel, ph - DEFAULT_INPUTS_BY_KIND rewritten to seed audit-grade prompts on every kind (bath IDs, photos, multi-point thickness, signatures, etc.) - + Common Audit Fields one-click button on the library template form - Default Operator Instructions relabel + alert callout PER-RECIPE CONFIGURABILITY - collect (Boolean) per recipe-step input prompt — opt out without delete - collect_measurements (Boolean) master switch on recipe step — when off, wizard skips entirely - template_input_id (Many2one) traceability link from recipe to library - Recipe-step backend form view exposes the new fields with handle drag, toggle, target range, and library-source column RUNTIME WIRING - Step input wizard filters node.input_ids to step_input AND collect=True; short-circuits on collect_measurements=False - New input types: photo (image widget + ir.attachment), multi-point thickness (5 readings + auto avg, skips empty cells), bath chemistry panel (pH/conc/temp/bath bundle), pH (0-14 numeric) - Composite values JSON-serialized into value_text; photo via attachment CoC REPORT - Filters captured prompts to collect=True only - Renders new input types with appropriate format MIGRATION (post-migrate.py for 19.0.18.7.0) - Backfills collect=True on recipe-step inputs - Backfills collect_measurements=True on recipe steps - Re-runs action_seed_default_inputs on every existing template (idempotent, preserves user edits) - Backfills template_input_id by name-matching against source library template (handles JSONB vs varchar name columns) SEED DATA - 8 example templates (one per new kind) in fp_step_template_data.xml with noupdate=1 BATTLE TEST - bt_step_library_audit.py: 29 assertions all PASS on entech OWL EDITOR EXTENSION DEFERRED - The simple recipe editor's per-step Instructions/Measurements expansions were not implemented in this pass; users configure via the backend recipe-step form. Track follow-up. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,134 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright 2026 Nexa Systems Inc.
|
||||
License OPL-1 (Odoo Proprietary License v1.0)
|
||||
Part of the Fusion Plating product family.
|
||||
|
||||
Seed materials. noupdate="1" so users can rename / archive without
|
||||
a module upgrade reverting their edits.
|
||||
-->
|
||||
<odoo noupdate="1">
|
||||
|
||||
<!-- Aluminium family -->
|
||||
<record id="fp_material_aluminium" model="fp.part.material">
|
||||
<field name="name">Aluminium</field>
|
||||
<field name="category">aluminium</field>
|
||||
<field name="sequence">10</field>
|
||||
</record>
|
||||
<record id="fp_material_aluminium_6061" model="fp.part.material">
|
||||
<field name="name">Aluminium 6061</field>
|
||||
<field name="category">aluminium</field>
|
||||
<field name="sequence">11</field>
|
||||
<field name="notes">Common 6000-series alloy. Magnesium + silicon.</field>
|
||||
</record>
|
||||
<record id="fp_material_aluminium_6063" model="fp.part.material">
|
||||
<field name="name">Aluminium 6063</field>
|
||||
<field name="category">aluminium</field>
|
||||
<field name="sequence">12</field>
|
||||
<field name="notes">Architectural 6000-series alloy.</field>
|
||||
</record>
|
||||
<record id="fp_material_aluminium_7075" model="fp.part.material">
|
||||
<field name="name">Aluminium 7075</field>
|
||||
<field name="category">aluminium</field>
|
||||
<field name="sequence">13</field>
|
||||
<field name="notes">High-strength 7000-series. Aerospace.</field>
|
||||
</record>
|
||||
<record id="fp_material_aluminium_2024" model="fp.part.material">
|
||||
<field name="name">Aluminium 2024</field>
|
||||
<field name="category">aluminium</field>
|
||||
<field name="sequence">14</field>
|
||||
<field name="notes">2000-series. Copper alloy, aerospace.</field>
|
||||
</record>
|
||||
|
||||
<!-- Steel family -->
|
||||
<record id="fp_material_steel" model="fp.part.material">
|
||||
<field name="name">Steel</field>
|
||||
<field name="category">steel</field>
|
||||
<field name="sequence">20</field>
|
||||
</record>
|
||||
<record id="fp_material_steel_1018" model="fp.part.material">
|
||||
<field name="name">Steel 1018</field>
|
||||
<field name="category">steel</field>
|
||||
<field name="sequence">21</field>
|
||||
<field name="notes">Low-carbon mild steel.</field>
|
||||
</record>
|
||||
<record id="fp_material_steel_4140" model="fp.part.material">
|
||||
<field name="name">Steel 4140</field>
|
||||
<field name="category">steel</field>
|
||||
<field name="sequence">22</field>
|
||||
<field name="notes">Chrome-moly alloy steel.</field>
|
||||
</record>
|
||||
|
||||
<!-- Stainless family -->
|
||||
<record id="fp_material_stainless" model="fp.part.material">
|
||||
<field name="name">Stainless Steel</field>
|
||||
<field name="category">stainless</field>
|
||||
<field name="sequence">30</field>
|
||||
</record>
|
||||
<record id="fp_material_stainless_304" model="fp.part.material">
|
||||
<field name="name">Stainless 304</field>
|
||||
<field name="category">stainless</field>
|
||||
<field name="sequence">31</field>
|
||||
<field name="notes">Austenitic. General-purpose stainless.</field>
|
||||
</record>
|
||||
<record id="fp_material_stainless_316" model="fp.part.material">
|
||||
<field name="name">Stainless 316</field>
|
||||
<field name="category">stainless</field>
|
||||
<field name="sequence">32</field>
|
||||
<field name="notes">Marine-grade. Molybdenum-bearing.</field>
|
||||
</record>
|
||||
<record id="fp_material_stainless_17_4" model="fp.part.material">
|
||||
<field name="name">Stainless 17-4 PH</field>
|
||||
<field name="category">stainless</field>
|
||||
<field name="sequence">33</field>
|
||||
<field name="notes">Precipitation hardening.</field>
|
||||
</record>
|
||||
|
||||
<!-- Copper family -->
|
||||
<record id="fp_material_copper" model="fp.part.material">
|
||||
<field name="name">Copper</field>
|
||||
<field name="category">copper</field>
|
||||
<field name="sequence">40</field>
|
||||
</record>
|
||||
<record id="fp_material_brass_360" model="fp.part.material">
|
||||
<field name="name">Brass C360</field>
|
||||
<field name="category">copper</field>
|
||||
<field name="sequence">41</field>
|
||||
<field name="density">8.5</field>
|
||||
<field name="notes">Free-machining brass.</field>
|
||||
</record>
|
||||
<record id="fp_material_bronze" model="fp.part.material">
|
||||
<field name="name">Bronze</field>
|
||||
<field name="category">copper</field>
|
||||
<field name="sequence">42</field>
|
||||
<field name="density">8.8</field>
|
||||
</record>
|
||||
|
||||
<!-- Titanium family -->
|
||||
<record id="fp_material_titanium" model="fp.part.material">
|
||||
<field name="name">Titanium</field>
|
||||
<field name="category">titanium</field>
|
||||
<field name="sequence">50</field>
|
||||
</record>
|
||||
<record id="fp_material_titanium_grade_2" model="fp.part.material">
|
||||
<field name="name">Titanium Grade 2</field>
|
||||
<field name="category">titanium</field>
|
||||
<field name="sequence">51</field>
|
||||
<field name="notes">Commercially pure titanium.</field>
|
||||
</record>
|
||||
<record id="fp_material_titanium_grade_5" model="fp.part.material">
|
||||
<field name="name">Titanium Grade 5 (Ti-6Al-4V)</field>
|
||||
<field name="category">titanium</field>
|
||||
<field name="sequence">52</field>
|
||||
<field name="density">4.43</field>
|
||||
<field name="notes">Aerospace alloy.</field>
|
||||
</record>
|
||||
|
||||
<!-- Other -->
|
||||
<record id="fp_material_other" model="fp.part.material">
|
||||
<field name="name">Other</field>
|
||||
<field name="category">other</field>
|
||||
<field name="sequence">99</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
Reference in New Issue
Block a user