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:
106
fusion_plating/fusion_plating/data/fp_step_template_data.xml
Normal file
106
fusion_plating/fusion_plating/data/fp_step_template_data.xml
Normal file
@@ -0,0 +1,106 @@
|
||||
<?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 templates for the 8 new Step Kinds added in 19.0.18.7.0.
|
||||
noupdate="1" so users can rename / archive without a module
|
||||
upgrade reverting their edits.
|
||||
-->
|
||||
<odoo noupdate="1">
|
||||
|
||||
<record id="fp_step_template_receiving_std" model="fp.step.template">
|
||||
<field name="name">Incoming Inspection (Standard)</field>
|
||||
<field name="code">RECV_STD</field>
|
||||
<field name="default_kind">receiving</field>
|
||||
<field name="icon">fa-inbox</field>
|
||||
<field name="description"><![CDATA[
|
||||
<p>Verify quantity received against packing slip. Visually inspect
|
||||
for damage, corrosion, oil residue. Photo any damage. Record
|
||||
inspector initials.</p>
|
||||
]]></field>
|
||||
</record>
|
||||
|
||||
<record id="fp_step_template_electroclean_std" model="fp.step.template">
|
||||
<field name="name">Electroclean (Standard)</field>
|
||||
<field name="code">ELEC_CLEAN_STD</field>
|
||||
<field name="default_kind">electroclean</field>
|
||||
<field name="icon">fa-bolt</field>
|
||||
<field name="description"><![CDATA[
|
||||
<p>Submerge rack and energise. Record actual amperage, voltage,
|
||||
and current density. Verify polarity per recipe spec.</p>
|
||||
]]></field>
|
||||
</record>
|
||||
|
||||
<record id="fp_step_template_strike_std" model="fp.step.template">
|
||||
<field name="name">Wood's Nickel Strike (Standard)</field>
|
||||
<field name="code">STRIKE_STD</field>
|
||||
<field name="default_kind">strike</field>
|
||||
<field name="icon">fa-flash</field>
|
||||
<field name="description"><![CDATA[
|
||||
<p>Apply thin nickel strike to ensure adhesion before main plate.
|
||||
Record bath ID, time, temperature, electrical readings.</p>
|
||||
]]></field>
|
||||
</record>
|
||||
|
||||
<record id="fp_step_template_salt_spray_std" model="fp.step.template">
|
||||
<field name="name">Salt Spray Test (ASTM B117)</field>
|
||||
<field name="code">SALT_SPRAY_STD</field>
|
||||
<field name="default_kind">salt_spray</field>
|
||||
<field name="icon">fa-tint</field>
|
||||
<field name="description"><![CDATA[
|
||||
<p>Submit test panel to salt spray cabinet for the specified
|
||||
duration. Record red rust % and white corrosion %. Attach lab
|
||||
report on completion.</p>
|
||||
]]></field>
|
||||
</record>
|
||||
|
||||
<record id="fp_step_template_adhesion_std" model="fp.step.template">
|
||||
<field name="name">Adhesion Test (Bend / Tape)</field>
|
||||
<field name="code">ADHESION_STD</field>
|
||||
<field name="default_kind">adhesion_test</field>
|
||||
<field name="icon">fa-link</field>
|
||||
<field name="description"><![CDATA[
|
||||
<p>Perform adhesion test per spec (bend, tape, burnish, or file).
|
||||
Photo coupon. Record PASS/FAIL.</p>
|
||||
]]></field>
|
||||
</record>
|
||||
|
||||
<record id="fp_step_template_hardness_std" model="fp.step.template">
|
||||
<field name="name">Microhardness Test</field>
|
||||
<field name="code">HARDNESS_STD</field>
|
||||
<field name="default_kind">hardness_test</field>
|
||||
<field name="icon">fa-cube</field>
|
||||
<field name="description"><![CDATA[
|
||||
<p>Take three indentations minimum on the test coupon. Record
|
||||
test load, individual readings, and the computed average.
|
||||
Confirm equipment calibration is current.</p>
|
||||
]]></field>
|
||||
</record>
|
||||
|
||||
<record id="fp_step_template_packaging_std" model="fp.step.template">
|
||||
<field name="name">Packaging (Standard)</field>
|
||||
<field name="code">PKG_STD</field>
|
||||
<field name="default_kind">packaging</field>
|
||||
<field name="icon">fa-archive</field>
|
||||
<field name="description"><![CDATA[
|
||||
<p>Wrap parts per customer spec (VCI bag, bubble wrap, separator
|
||||
paper). Verify cert package included if required. Record quantity
|
||||
per package and total package count.</p>
|
||||
]]></field>
|
||||
</record>
|
||||
|
||||
<record id="fp_step_template_replenishment_std" model="fp.step.template">
|
||||
<field name="name">Tank Replenishment</field>
|
||||
<field name="code">REPL_STD</field>
|
||||
<field name="default_kind">replenishment</field>
|
||||
<field name="icon">fa-flask</field>
|
||||
<field name="description"><![CDATA[
|
||||
<p>Mid-shift bath top-up. Record bath ID, chemistry added (name
|
||||
and amount), pH and concentration before/after. Operator must
|
||||
sign.</p>
|
||||
]]></field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
Reference in New Issue
Block a user