Operator-reported foot-gun: Step Kind dropdown had 24 options, most
of which were visual-only (cleaning, electroclean, etch, rinse,
strike, dry, wbf_test, hardness_test, adhesion_test, salt_spray,
packaging, etc.) and didn't drive any gate or milestone. Picking the
wrong one meant nothing happened; picking Generic (left default)
meant nothing happened. Authors couldn't tell which choice mattered.
Curation: 24 → 11 active kinds. Each remaining kind has a concrete
downstream behaviour (gate, portal milestone, hardware tie-in, or
"explicitly no behaviour" for Other):
other Other (catch-all, default — no special behaviour)
receiving Received portal milestone
contract_review QA-005 form gate + button_finish lock
racking Rack-assignment dialog + button_finish lock
mask Visual mask kind (covers Masking + De-Masking)
wet_process Visual wet kind (NEW, covers cleaning, rinse,
etch, strike, dry, electroclean, wbf_test)
plate Plated portal milestone (last plate step closes)
bake Bake-window state machine + Baked milestone
inspect Intermediate inspection milestone
final_inspect Inspected (terminal) portal milestone
ship Shipped milestone (back-compat; delivery-state
driven is preferred)
Retired kinds (active=False, hidden from dropdown): cleaning,
electroclean, etch, rinse, strike, dry, wbf_test, demask, derack,
replenishment, hardness_test, adhesion_test, salt_spray, packaging,
gating. Kept in DB for audit / history but not selectable.
Mandatory enforcement:
- fp.step.kind_id on fusion.plating.process.node and fp.step.template
is now required=True with ondelete='restrict' and a default that
resolves to the 'other' kind. Existing NULL rows are backfilled by
the pre-migrate before the NOT NULL constraint hits the schema.
- Dropdown no longer offers a blank / "Generic" option. New steps
land on 'other' instead of NULL.
Admin-only catalog:
- /fp/simple_recipe/kinds/create endpoint now refuses requests from
non-managers (group_fusion_plating_manager). Returns a clear
message explaining why ("each kind drives gates / milestones /
routing — pick Other if none fits, or ask a manager to wire up a
new kind").
- "+ Add a new kind…" sentinel option in the library form is hidden
unless state.recipe.user_is_manager. Backend gate is the authority;
the UI hide is just to stop showing a button that will error.
- The Step Type dropdown in the inline step-edit panel switched from
a 24-line hard-coded XML option list to a t-foreach over
state.kindOptions (the same kinds/list endpoint payload). One
source of truth — retire / add a kind in the catalog and every
picker reflects the change.
Migration impact (entech): 5 templates + 579 nodes backfilled via
name-match heuristic. 15 kinds flipped to active=False. Distribution
of the 579 backfilled nodes:
racking 105, other 97, bake 91, wet_process 90, mask 74,
inspect 44, plate 32, final_inspect 25, receiving 10,
contract_review 9, ship 2.
Drive-by:
- Migration uses _ensure_kind() that also registers ir.model.data
for the new xmlids so the subsequent data XML load doesn't create
duplicate kind records.
- Stored related default_kind on fusion.plating.process.node /
fp.step.template is written alongside kind_id in every SQL UPDATE
so legacy `node.default_kind == 'foo'` comparisons stay accurate
(the ORM doesn't recompute stored related fields after direct
SQL writes).
Module: fusion_plating 19.0.20.5.0 → 19.0.20.6.0.
15 existing tests still green.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
960 lines
47 KiB
XML
960 lines
47 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo>
|
|
<data noupdate="1">
|
|
<!-- Step Kind catalog.
|
|
|
|
noupdate=1 so user edits to defaults survive `-u`.
|
|
|
|
2026-05-20 curation (19.0.20.6.0):
|
|
- Cut from 24 → 12 active kinds. The dropped ones
|
|
(cleaning, electroclean, etch, rinse, strike, dry,
|
|
wbf_test, demask, derack, replenishment, hardness_test,
|
|
adhesion_test, salt_spray, packaging, gating) are kept
|
|
in this XML for history but flipped active=False by the
|
|
migration script so they no longer appear in the
|
|
dropdown — and bulk-remapped onto the new `other` /
|
|
`wet_process` kinds.
|
|
- New: `other` (catch-all, default) and `wet_process`
|
|
(covers all bath-based steps).
|
|
- `mask` covers Masking + De-Masking, `racking` covers
|
|
Racking + De-Racking — operators differentiate by the
|
|
step name. -->
|
|
|
|
<!-- ============================================================ -->
|
|
<!-- ACTIVE KINDS — visible in dropdown -->
|
|
<!-- ============================================================ -->
|
|
|
|
<record id="step_kind_other" model="fp.step.kind">
|
|
<field name="code">other</field>
|
|
<field name="name">Other</field>
|
|
<field name="sequence">5</field>
|
|
<field name="icon">fa-circle-o</field>
|
|
</record>
|
|
|
|
<record id="step_kind_wet_process" model="fp.step.kind">
|
|
<field name="code">wet_process</field>
|
|
<field name="name">Wet Process (Clean / Rinse / Etch / Dry / etc.)</field>
|
|
<field name="sequence">55</field>
|
|
<field name="icon">fa-tint</field>
|
|
</record>
|
|
|
|
<record id="step_kind_receiving" model="fp.step.kind">
|
|
<field name="code">receiving</field>
|
|
<field name="name">Receiving / Incoming Inspection</field>
|
|
<field name="sequence">10</field>
|
|
<field name="icon">fa-truck</field>
|
|
</record>
|
|
<record id="step_kind_contract_review" model="fp.step.kind">
|
|
<field name="code">contract_review</field>
|
|
<field name="name">Contract Review (QA-005)</field>
|
|
<field name="sequence">20</field>
|
|
<field name="icon">fa-file-text-o</field>
|
|
</record>
|
|
<record id="step_kind_racking" model="fp.step.kind">
|
|
<field name="code">racking</field>
|
|
<field name="name">Racking</field>
|
|
<field name="sequence">30</field>
|
|
<field name="icon">fa-server</field>
|
|
</record>
|
|
<record id="step_kind_mask" model="fp.step.kind">
|
|
<field name="code">mask</field>
|
|
<field name="name">Masking</field>
|
|
<field name="sequence">40</field>
|
|
<field name="icon">fa-eye-slash</field>
|
|
</record>
|
|
<record id="step_kind_cleaning" model="fp.step.kind">
|
|
<field name="code">cleaning</field>
|
|
<field name="name">Cleaning</field>
|
|
<field name="sequence">50</field>
|
|
<field name="icon">fa-tint</field>
|
|
</record>
|
|
<record id="step_kind_electroclean" model="fp.step.kind">
|
|
<field name="code">electroclean</field>
|
|
<field name="name">Electroclean</field>
|
|
<field name="sequence">60</field>
|
|
<field name="icon">fa-bolt</field>
|
|
</record>
|
|
<record id="step_kind_etch" model="fp.step.kind">
|
|
<field name="code">etch</field>
|
|
<field name="name">Etch / Activation</field>
|
|
<field name="sequence">70</field>
|
|
<field name="icon">fa-flask</field>
|
|
</record>
|
|
<record id="step_kind_rinse" model="fp.step.kind">
|
|
<field name="code">rinse</field>
|
|
<field name="name">Rinse</field>
|
|
<field name="sequence">80</field>
|
|
<field name="icon">fa-tint</field>
|
|
</record>
|
|
<record id="step_kind_strike" model="fp.step.kind">
|
|
<field name="code">strike</field>
|
|
<field name="name">Strike (Wood's Nickel / Activation)</field>
|
|
<field name="sequence">90</field>
|
|
<field name="icon">fa-bolt</field>
|
|
</record>
|
|
<record id="step_kind_plate" model="fp.step.kind">
|
|
<field name="code">plate</field>
|
|
<field name="name">Plating</field>
|
|
<field name="sequence">100</field>
|
|
<field name="icon">fa-shield</field>
|
|
</record>
|
|
<record id="step_kind_replenishment" model="fp.step.kind">
|
|
<field name="code">replenishment</field>
|
|
<field name="name">Tank Replenishment</field>
|
|
<field name="sequence">110</field>
|
|
<field name="icon">fa-plus-circle</field>
|
|
</record>
|
|
<record id="step_kind_wbf_test" model="fp.step.kind">
|
|
<field name="code">wbf_test</field>
|
|
<field name="name">Water Break Free Test</field>
|
|
<field name="sequence">120</field>
|
|
<field name="icon">fa-check-square-o</field>
|
|
</record>
|
|
<record id="step_kind_dry" model="fp.step.kind">
|
|
<field name="code">dry</field>
|
|
<field name="name">Drying</field>
|
|
<field name="sequence">130</field>
|
|
<field name="icon">fa-sun-o</field>
|
|
</record>
|
|
<record id="step_kind_bake" model="fp.step.kind">
|
|
<field name="code">bake</field>
|
|
<field name="name">Bake (HE Relief / Stress Relief)</field>
|
|
<field name="sequence">140</field>
|
|
<field name="icon">fa-fire</field>
|
|
</record>
|
|
<record id="step_kind_demask" model="fp.step.kind">
|
|
<field name="code">demask</field>
|
|
<field name="name">De-Masking</field>
|
|
<field name="sequence">150</field>
|
|
<field name="icon">fa-eye</field>
|
|
</record>
|
|
<record id="step_kind_derack" model="fp.step.kind">
|
|
<field name="code">derack</field>
|
|
<field name="name">De-Racking</field>
|
|
<field name="sequence">160</field>
|
|
<field name="icon">fa-server</field>
|
|
</record>
|
|
<record id="step_kind_inspect" model="fp.step.kind">
|
|
<field name="code">inspect</field>
|
|
<field name="name">Inspection</field>
|
|
<field name="sequence">170</field>
|
|
<field name="icon">fa-search</field>
|
|
</record>
|
|
<record id="step_kind_hardness_test" model="fp.step.kind">
|
|
<field name="code">hardness_test</field>
|
|
<field name="name">Hardness Test (HV / HK / HRC)</field>
|
|
<field name="sequence">180</field>
|
|
<field name="icon">fa-tachometer</field>
|
|
</record>
|
|
<record id="step_kind_adhesion_test" model="fp.step.kind">
|
|
<field name="code">adhesion_test</field>
|
|
<field name="name">Adhesion Test</field>
|
|
<field name="sequence">190</field>
|
|
<field name="icon">fa-link</field>
|
|
</record>
|
|
<record id="step_kind_salt_spray" model="fp.step.kind">
|
|
<field name="code">salt_spray</field>
|
|
<field name="name">Salt Spray / Corrosion Test</field>
|
|
<field name="sequence">200</field>
|
|
<field name="icon">fa-cloud</field>
|
|
</record>
|
|
<record id="step_kind_final_inspect" model="fp.step.kind">
|
|
<field name="code">final_inspect</field>
|
|
<field name="name">Final Inspection</field>
|
|
<field name="sequence">210</field>
|
|
<field name="icon">fa-check-circle</field>
|
|
</record>
|
|
<record id="step_kind_packaging" model="fp.step.kind">
|
|
<field name="code">packaging</field>
|
|
<field name="name">Packaging / Pre-Ship</field>
|
|
<field name="sequence">220</field>
|
|
<field name="icon">fa-archive</field>
|
|
</record>
|
|
<record id="step_kind_ship" model="fp.step.kind">
|
|
<field name="code">ship</field>
|
|
<field name="name">Shipping</field>
|
|
<field name="sequence">230</field>
|
|
<field name="icon">fa-paper-plane</field>
|
|
</record>
|
|
<record id="step_kind_gating" model="fp.step.kind">
|
|
<field name="code">gating</field>
|
|
<field name="name">Gating</field>
|
|
<field name="sequence">240</field>
|
|
<field name="icon">fa-pause-circle</field>
|
|
</record>
|
|
|
|
<!-- ============================================================
|
|
Default inputs per kind — 1:1 port of DEFAULT_INPUTS_BY_KIND
|
|
============================================================ -->
|
|
|
|
<!-- receiving -->
|
|
<record id="step_kind_input_receiving_qty_received" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_receiving"/>
|
|
<field name="name">Qty Received</field>
|
|
<field name="input_type">number</field>
|
|
<field name="target_unit">each</field>
|
|
<field name="sequence">10</field>
|
|
<field name="required">True</field>
|
|
</record>
|
|
<record id="step_kind_input_receiving_qty_rejected" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_receiving"/>
|
|
<field name="name">Qty Rejected</field>
|
|
<field name="input_type">number</field>
|
|
<field name="target_unit">each</field>
|
|
<field name="sequence">20</field>
|
|
</record>
|
|
<record id="step_kind_input_receiving_po_verified" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_receiving"/>
|
|
<field name="name">Customer PO# Verified</field>
|
|
<field name="input_type">boolean</field>
|
|
<field name="sequence">30</field>
|
|
</record>
|
|
<record id="step_kind_input_receiving_packing_slip" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_receiving"/>
|
|
<field name="name">Packing Slip #</field>
|
|
<field name="input_type">text</field>
|
|
<field name="sequence">40</field>
|
|
</record>
|
|
<record id="step_kind_input_receiving_condition" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_receiving"/>
|
|
<field name="name">Condition Notes</field>
|
|
<field name="input_type">text</field>
|
|
<field name="sequence">50</field>
|
|
</record>
|
|
<record id="step_kind_input_receiving_damage_photo" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_receiving"/>
|
|
<field name="name">Damage Photo</field>
|
|
<field name="input_type">photo</field>
|
|
<field name="sequence">60</field>
|
|
</record>
|
|
<record id="step_kind_input_receiving_inspector_init" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_receiving"/>
|
|
<field name="name">Inspector Initials</field>
|
|
<field name="input_type">signature</field>
|
|
<field name="sequence">70</field>
|
|
<field name="required">True</field>
|
|
</record>
|
|
|
|
<!-- cleaning -->
|
|
<record id="step_kind_input_cleaning_actual_time" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_cleaning"/>
|
|
<field name="name">Actual Time</field>
|
|
<field name="input_type">time_seconds</field>
|
|
<field name="target_unit">s</field>
|
|
<field name="sequence">10</field>
|
|
</record>
|
|
<record id="step_kind_input_cleaning_actual_temp" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_cleaning"/>
|
|
<field name="name">Actual Temperature</field>
|
|
<field name="input_type">temperature</field>
|
|
<field name="target_unit">f</field>
|
|
<field name="sequence">20</field>
|
|
</record>
|
|
<record id="step_kind_input_cleaning_bath_id" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_cleaning"/>
|
|
<field name="name">Bath ID</field>
|
|
<field name="input_type">text</field>
|
|
<field name="sequence">30</field>
|
|
</record>
|
|
<record id="step_kind_input_cleaning_us_on" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_cleaning"/>
|
|
<field name="name">Ultrasonic On</field>
|
|
<field name="input_type">boolean</field>
|
|
<field name="sequence">40</field>
|
|
</record>
|
|
<record id="step_kind_input_cleaning_titration" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_cleaning"/>
|
|
<field name="name">Titration Done</field>
|
|
<field name="input_type">boolean</field>
|
|
<field name="sequence">50</field>
|
|
</record>
|
|
|
|
<!-- electroclean -->
|
|
<record id="step_kind_input_eclean_time" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_electroclean"/>
|
|
<field name="name">Actual Time</field>
|
|
<field name="input_type">time_seconds</field>
|
|
<field name="target_unit">s</field>
|
|
<field name="sequence">10</field>
|
|
</record>
|
|
<record id="step_kind_input_eclean_temp" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_electroclean"/>
|
|
<field name="name">Actual Temperature</field>
|
|
<field name="input_type">temperature</field>
|
|
<field name="target_unit">f</field>
|
|
<field name="sequence">20</field>
|
|
</record>
|
|
<record id="step_kind_input_eclean_amp" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_electroclean"/>
|
|
<field name="name">Amperage</field>
|
|
<field name="input_type">number</field>
|
|
<field name="hint">A</field>
|
|
<field name="sequence">30</field>
|
|
</record>
|
|
<record id="step_kind_input_eclean_volt" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_electroclean"/>
|
|
<field name="name">Voltage</field>
|
|
<field name="input_type">number</field>
|
|
<field name="hint">V</field>
|
|
<field name="sequence">40</field>
|
|
</record>
|
|
<record id="step_kind_input_eclean_cd" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_electroclean"/>
|
|
<field name="name">Current Density</field>
|
|
<field name="input_type">number</field>
|
|
<field name="hint">ASF (A per sq ft)</field>
|
|
<field name="sequence">50</field>
|
|
</record>
|
|
<record id="step_kind_input_eclean_pol" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_electroclean"/>
|
|
<field name="name">Polarity</field>
|
|
<field name="input_type">selection</field>
|
|
<field name="selection_options">anodic,cathodic,periodic</field>
|
|
<field name="sequence">60</field>
|
|
</record>
|
|
<record id="step_kind_input_eclean_bath" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_electroclean"/>
|
|
<field name="name">Bath ID</field>
|
|
<field name="input_type">text</field>
|
|
<field name="sequence">70</field>
|
|
</record>
|
|
|
|
<!-- etch -->
|
|
<record id="step_kind_input_etch_time" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_etch"/>
|
|
<field name="name">Actual Time</field>
|
|
<field name="input_type">time_seconds</field>
|
|
<field name="target_unit">s</field>
|
|
<field name="sequence">10</field>
|
|
</record>
|
|
<record id="step_kind_input_etch_temp" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_etch"/>
|
|
<field name="name">Actual Temperature</field>
|
|
<field name="input_type">temperature</field>
|
|
<field name="target_unit">f</field>
|
|
<field name="sequence">20</field>
|
|
</record>
|
|
<record id="step_kind_input_etch_acid" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_etch"/>
|
|
<field name="name">Acid Concentration</field>
|
|
<field name="input_type">number</field>
|
|
<field name="hint">% or g/L</field>
|
|
<field name="sequence">30</field>
|
|
</record>
|
|
<record id="step_kind_input_etch_bath" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_etch"/>
|
|
<field name="name">Bath ID</field>
|
|
<field name="input_type">text</field>
|
|
<field name="sequence">40</field>
|
|
</record>
|
|
<record id="step_kind_input_etch_he" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_etch"/>
|
|
<field name="name">HE Risk Flag</field>
|
|
<field name="input_type">boolean</field>
|
|
<field name="hint">Hydrogen Embrittlement risk for high-strength steel</field>
|
|
<field name="sequence">50</field>
|
|
</record>
|
|
|
|
<!-- rinse -->
|
|
<record id="step_kind_input_rinse_type" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_rinse"/>
|
|
<field name="name">Rinse Type</field>
|
|
<field name="input_type">selection</field>
|
|
<field name="selection_options">cascade,spray,DI,city</field>
|
|
<field name="sequence">10</field>
|
|
</record>
|
|
<record id="step_kind_input_rinse_cond" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_rinse"/>
|
|
<field name="name">Conductivity</field>
|
|
<field name="input_type">number</field>
|
|
<field name="hint">µS/cm — required for DI rinses</field>
|
|
<field name="sequence">20</field>
|
|
</record>
|
|
<record id="step_kind_input_rinse_time" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_rinse"/>
|
|
<field name="name">Actual Time</field>
|
|
<field name="input_type">time_seconds</field>
|
|
<field name="target_unit">s</field>
|
|
<field name="sequence">30</field>
|
|
</record>
|
|
|
|
<!-- strike -->
|
|
<record id="step_kind_input_strike_time" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_strike"/>
|
|
<field name="name">Actual Time</field>
|
|
<field name="input_type">time_seconds</field>
|
|
<field name="target_unit">s</field>
|
|
<field name="sequence">10</field>
|
|
</record>
|
|
<record id="step_kind_input_strike_temp" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_strike"/>
|
|
<field name="name">Actual Temperature</field>
|
|
<field name="input_type">temperature</field>
|
|
<field name="target_unit">f</field>
|
|
<field name="sequence">20</field>
|
|
</record>
|
|
<record id="step_kind_input_strike_amp" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_strike"/>
|
|
<field name="name">Amperage</field>
|
|
<field name="input_type">number</field>
|
|
<field name="hint">A</field>
|
|
<field name="sequence">30</field>
|
|
</record>
|
|
<record id="step_kind_input_strike_volt" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_strike"/>
|
|
<field name="name">Voltage</field>
|
|
<field name="input_type">number</field>
|
|
<field name="hint">V</field>
|
|
<field name="sequence">40</field>
|
|
</record>
|
|
<record id="step_kind_input_strike_cd" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_strike"/>
|
|
<field name="name">Current Density</field>
|
|
<field name="input_type">number</field>
|
|
<field name="hint">ASF</field>
|
|
<field name="sequence">50</field>
|
|
</record>
|
|
<record id="step_kind_input_strike_bath" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_strike"/>
|
|
<field name="name">Bath ID</field>
|
|
<field name="input_type">text</field>
|
|
<field name="sequence">60</field>
|
|
</record>
|
|
|
|
<!-- plate -->
|
|
<record id="step_kind_input_plate_time" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_plate"/>
|
|
<field name="name">Actual Time</field>
|
|
<field name="input_type">time_hms</field>
|
|
<field name="target_unit">min</field>
|
|
<field name="sequence">10</field>
|
|
</record>
|
|
<record id="step_kind_input_plate_temp" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_plate"/>
|
|
<field name="name">Actual Temperature</field>
|
|
<field name="input_type">temperature</field>
|
|
<field name="target_unit">f</field>
|
|
<field name="sequence">20</field>
|
|
</record>
|
|
<record id="step_kind_input_plate_bath" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_plate"/>
|
|
<field name="name">Bath ID</field>
|
|
<field name="input_type">text</field>
|
|
<field name="sequence">30</field>
|
|
</record>
|
|
<record id="step_kind_input_plate_ph" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_plate"/>
|
|
<field name="name">pH</field>
|
|
<field name="input_type">ph</field>
|
|
<field name="sequence">40</field>
|
|
</record>
|
|
<record id="step_kind_input_plate_conc" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_plate"/>
|
|
<field name="name">Bath Concentration</field>
|
|
<field name="input_type">number</field>
|
|
<field name="hint">g/L</field>
|
|
<field name="sequence">50</field>
|
|
</record>
|
|
<record id="step_kind_input_plate_cd" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_plate"/>
|
|
<field name="name">Current Density</field>
|
|
<field name="input_type">number</field>
|
|
<field name="hint">ASF — electroplate only</field>
|
|
<field name="sequence">60</field>
|
|
</record>
|
|
<record id="step_kind_input_plate_thick" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_plate"/>
|
|
<field name="name">Plating Thickness</field>
|
|
<field name="input_type">multi_point_thickness</field>
|
|
<field name="target_unit">in</field>
|
|
<field name="sequence">70</field>
|
|
</record>
|
|
|
|
<!-- replenishment -->
|
|
<record id="step_kind_input_replen_bath" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_replenishment"/>
|
|
<field name="name">Bath ID</field>
|
|
<field name="input_type">text</field>
|
|
<field name="sequence">10</field>
|
|
<field name="required">True</field>
|
|
</record>
|
|
<record id="step_kind_input_replen_chem" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_replenishment"/>
|
|
<field name="name">Chemistry Added</field>
|
|
<field name="input_type">text</field>
|
|
<field name="hint">name + amount, e.g. "Nickel sulfamate 500mL"</field>
|
|
<field name="sequence">20</field>
|
|
</record>
|
|
<record id="step_kind_input_replen_ph_b" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_replenishment"/>
|
|
<field name="name">pH Before</field>
|
|
<field name="input_type">ph</field>
|
|
<field name="sequence">30</field>
|
|
</record>
|
|
<record id="step_kind_input_replen_ph_a" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_replenishment"/>
|
|
<field name="name">pH After</field>
|
|
<field name="input_type">ph</field>
|
|
<field name="sequence">40</field>
|
|
</record>
|
|
<record id="step_kind_input_replen_conc_b" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_replenishment"/>
|
|
<field name="name">Concentration Before</field>
|
|
<field name="input_type">number</field>
|
|
<field name="sequence">50</field>
|
|
</record>
|
|
<record id="step_kind_input_replen_conc_a" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_replenishment"/>
|
|
<field name="name">Concentration After</field>
|
|
<field name="input_type">number</field>
|
|
<field name="sequence">60</field>
|
|
</record>
|
|
<record id="step_kind_input_replen_op" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_replenishment"/>
|
|
<field name="name">Operator Initials</field>
|
|
<field name="input_type">signature</field>
|
|
<field name="sequence">70</field>
|
|
<field name="required">True</field>
|
|
</record>
|
|
|
|
<!-- wbf_test -->
|
|
<record id="step_kind_input_wbf_result" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_wbf_test"/>
|
|
<field name="name">Result</field>
|
|
<field name="input_type">pass_fail</field>
|
|
<field name="sequence">10</field>
|
|
<field name="required">True</field>
|
|
</record>
|
|
<record id="step_kind_input_wbf_retest" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_wbf_test"/>
|
|
<field name="name">Retest Count</field>
|
|
<field name="input_type">number</field>
|
|
<field name="sequence">20</field>
|
|
</record>
|
|
<record id="step_kind_input_wbf_photo" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_wbf_test"/>
|
|
<field name="name">Photo on FAIL</field>
|
|
<field name="input_type">photo</field>
|
|
<field name="sequence">30</field>
|
|
</record>
|
|
|
|
<!-- dry -->
|
|
<record id="step_kind_input_dry_method" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_dry"/>
|
|
<field name="name">Dry Method</field>
|
|
<field name="input_type">selection</field>
|
|
<field name="selection_options">hot air,oven,spin</field>
|
|
<field name="sequence">10</field>
|
|
</record>
|
|
<record id="step_kind_input_dry_time" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_dry"/>
|
|
<field name="name">Actual Time</field>
|
|
<field name="input_type">time_seconds</field>
|
|
<field name="target_unit">s</field>
|
|
<field name="sequence">20</field>
|
|
</record>
|
|
<record id="step_kind_input_dry_temp" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_dry"/>
|
|
<field name="name">Actual Temperature</field>
|
|
<field name="input_type">temperature</field>
|
|
<field name="target_unit">f</field>
|
|
<field name="sequence">30</field>
|
|
</record>
|
|
|
|
<!-- bake -->
|
|
<record id="step_kind_input_bake_in" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_bake"/>
|
|
<field name="name">Time In</field>
|
|
<field name="input_type">date</field>
|
|
<field name="sequence">10</field>
|
|
</record>
|
|
<record id="step_kind_input_bake_out" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_bake"/>
|
|
<field name="name">Time Out</field>
|
|
<field name="input_type">date</field>
|
|
<field name="sequence">20</field>
|
|
</record>
|
|
<record id="step_kind_input_bake_temp" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_bake"/>
|
|
<field name="name">Actual Temperature</field>
|
|
<field name="input_type">temperature</field>
|
|
<field name="target_unit">f</field>
|
|
<field name="sequence">30</field>
|
|
</record>
|
|
<record id="step_kind_input_bake_oven" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_bake"/>
|
|
<field name="name">Oven ID</field>
|
|
<field name="input_type">text</field>
|
|
<field name="sequence">40</field>
|
|
</record>
|
|
<record id="step_kind_input_bake_chart" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_bake"/>
|
|
<field name="name">Chart Recorder File</field>
|
|
<field name="input_type">photo</field>
|
|
<field name="hint">Attach AMS-2759 chart-recorder file</field>
|
|
<field name="sequence">50</field>
|
|
</record>
|
|
|
|
<!-- racking -->
|
|
<record id="step_kind_input_racking_qty" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_racking"/>
|
|
<field name="name">Actual Qty</field>
|
|
<field name="input_type">number</field>
|
|
<field name="target_unit">each</field>
|
|
<field name="sequence">10</field>
|
|
<field name="required">True</field>
|
|
</record>
|
|
<record id="step_kind_input_racking_rack" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_racking"/>
|
|
<field name="name">Rack ID</field>
|
|
<field name="input_type">text</field>
|
|
<field name="sequence">20</field>
|
|
</record>
|
|
<record id="step_kind_input_racking_mask" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_racking"/>
|
|
<field name="name">Masking Applied</field>
|
|
<field name="input_type">boolean</field>
|
|
<field name="sequence">30</field>
|
|
</record>
|
|
<record id="step_kind_input_racking_photo" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_racking"/>
|
|
<field name="name">Photo of Racked Load</field>
|
|
<field name="input_type">photo</field>
|
|
<field name="sequence">40</field>
|
|
</record>
|
|
|
|
<!-- derack -->
|
|
<record id="step_kind_input_derack_qty" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_derack"/>
|
|
<field name="name">Actual Qty</field>
|
|
<field name="input_type">number</field>
|
|
<field name="target_unit">each</field>
|
|
<field name="sequence">10</field>
|
|
</record>
|
|
<record id="step_kind_input_derack_method" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_derack"/>
|
|
<field name="name">Mask Removal Method</field>
|
|
<field name="input_type">selection</field>
|
|
<field name="selection_options">mechanical,solvent,thermal,not applicable</field>
|
|
<field name="sequence">20</field>
|
|
</record>
|
|
<record id="step_kind_input_derack_residue" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_derack"/>
|
|
<field name="name">Residue Check</field>
|
|
<field name="input_type">pass_fail</field>
|
|
<field name="sequence">30</field>
|
|
</record>
|
|
|
|
<!-- mask -->
|
|
<record id="step_kind_input_mask_qty" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_mask"/>
|
|
<field name="name">Actual Qty</field>
|
|
<field name="input_type">number</field>
|
|
<field name="target_unit">each</field>
|
|
<field name="sequence">10</field>
|
|
</record>
|
|
<record id="step_kind_input_mask_material" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_mask"/>
|
|
<field name="name">Mask Material</field>
|
|
<field name="input_type">selection</field>
|
|
<field name="selection_options">Microshield,latex tape,vinyl plugs,wax,other</field>
|
|
<field name="sequence">20</field>
|
|
</record>
|
|
<record id="step_kind_input_mask_photo" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_mask"/>
|
|
<field name="name">Photo of Masked Parts</field>
|
|
<field name="input_type">photo</field>
|
|
<field name="sequence">30</field>
|
|
</record>
|
|
|
|
<!-- demask -->
|
|
<record id="step_kind_input_demask_residue" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_demask"/>
|
|
<field name="name">Residue Check</field>
|
|
<field name="input_type">pass_fail</field>
|
|
<field name="sequence">10</field>
|
|
</record>
|
|
<record id="step_kind_input_demask_surface" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_demask"/>
|
|
<field name="name">Surface Condition</field>
|
|
<field name="input_type">selection</field>
|
|
<field name="selection_options">clean,marks,needs rework</field>
|
|
<field name="sequence">20</field>
|
|
</record>
|
|
|
|
<!-- inspect -->
|
|
<record id="step_kind_input_inspect_result" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_inspect"/>
|
|
<field name="name">Result</field>
|
|
<field name="input_type">pass_fail</field>
|
|
<field name="sequence">10</field>
|
|
<field name="required">True</field>
|
|
</record>
|
|
<record id="step_kind_input_inspect_defect" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_inspect"/>
|
|
<field name="name">Defect Type</field>
|
|
<field name="input_type">selection</field>
|
|
<field name="selection_options">pitting,burn,blister,peel,missing coverage,none</field>
|
|
<field name="sequence">20</field>
|
|
</record>
|
|
<record id="step_kind_input_inspect_thick" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_inspect"/>
|
|
<field name="name">Thickness Sample</field>
|
|
<field name="input_type">thickness</field>
|
|
<field name="target_unit">in</field>
|
|
<field name="sequence">30</field>
|
|
</record>
|
|
<record id="step_kind_input_inspect_photo" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_inspect"/>
|
|
<field name="name">Photo</field>
|
|
<field name="input_type">photo</field>
|
|
<field name="sequence">40</field>
|
|
</record>
|
|
<record id="step_kind_input_inspect_sig" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_inspect"/>
|
|
<field name="name">Inspector Signature</field>
|
|
<field name="input_type">signature</field>
|
|
<field name="sequence">50</field>
|
|
</record>
|
|
|
|
<!-- hardness_test -->
|
|
<record id="step_kind_input_hard_load" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_hardness_test"/>
|
|
<field name="name">Test Load</field>
|
|
<field name="input_type">number</field>
|
|
<field name="hint">gf</field>
|
|
<field name="sequence">10</field>
|
|
</record>
|
|
<record id="step_kind_input_hard_readings" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_hardness_test"/>
|
|
<field name="name">Readings (HV/HK/HRC)</field>
|
|
<field name="input_type">multi_point_thickness</field>
|
|
<field name="hint">Three indents minimum</field>
|
|
<field name="sequence">20</field>
|
|
</record>
|
|
<record id="step_kind_input_hard_eq" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_hardness_test"/>
|
|
<field name="name">Equipment ID</field>
|
|
<field name="input_type">text</field>
|
|
<field name="sequence">30</field>
|
|
</record>
|
|
<record id="step_kind_input_hard_cal" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_hardness_test"/>
|
|
<field name="name">Last Calibration Date</field>
|
|
<field name="input_type">date</field>
|
|
<field name="sequence">40</field>
|
|
</record>
|
|
|
|
<!-- adhesion_test -->
|
|
<record id="step_kind_input_adh_method" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_adhesion_test"/>
|
|
<field name="name">Test Method</field>
|
|
<field name="input_type">selection</field>
|
|
<field name="selection_options">bend,tape,burnish,file</field>
|
|
<field name="sequence">10</field>
|
|
</record>
|
|
<record id="step_kind_input_adh_result" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_adhesion_test"/>
|
|
<field name="name">Result</field>
|
|
<field name="input_type">pass_fail</field>
|
|
<field name="sequence">20</field>
|
|
<field name="required">True</field>
|
|
</record>
|
|
<record id="step_kind_input_adh_photo" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_adhesion_test"/>
|
|
<field name="name">Photo of Coupon</field>
|
|
<field name="input_type">photo</field>
|
|
<field name="sequence">30</field>
|
|
</record>
|
|
|
|
<!-- salt_spray -->
|
|
<record id="step_kind_input_salt_dur" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_salt_spray"/>
|
|
<field name="name">Test Duration</field>
|
|
<field name="input_type">number</field>
|
|
<field name="hint">hours</field>
|
|
<field name="sequence">10</field>
|
|
</record>
|
|
<record id="step_kind_input_salt_result" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_salt_spray"/>
|
|
<field name="name">Result</field>
|
|
<field name="input_type">pass_fail</field>
|
|
<field name="sequence">20</field>
|
|
<field name="required">True</field>
|
|
</record>
|
|
<record id="step_kind_input_salt_red" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_salt_spray"/>
|
|
<field name="name">Red Rust %</field>
|
|
<field name="input_type">number</field>
|
|
<field name="sequence">30</field>
|
|
</record>
|
|
<record id="step_kind_input_salt_white" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_salt_spray"/>
|
|
<field name="name">White Corrosion %</field>
|
|
<field name="input_type">number</field>
|
|
<field name="sequence">40</field>
|
|
</record>
|
|
<record id="step_kind_input_salt_lab" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_salt_spray"/>
|
|
<field name="name">Lab Report</field>
|
|
<field name="input_type">photo</field>
|
|
<field name="hint">Attach scanned lab report</field>
|
|
<field name="sequence">50</field>
|
|
</record>
|
|
|
|
<!-- final_inspect -->
|
|
<record id="step_kind_input_fin_count" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_final_inspect"/>
|
|
<field name="name">Outgoing Part Count Verified</field>
|
|
<field name="input_type">boolean</field>
|
|
<field name="sequence">10</field>
|
|
</record>
|
|
<record id="step_kind_input_fin_qty_acc" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_final_inspect"/>
|
|
<field name="name">Qty Accepted</field>
|
|
<field name="input_type">number</field>
|
|
<field name="target_unit">each</field>
|
|
<field name="sequence">20</field>
|
|
</record>
|
|
<record id="step_kind_input_fin_qty_rej" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_final_inspect"/>
|
|
<field name="name">Qty Rejected</field>
|
|
<field name="input_type">number</field>
|
|
<field name="target_unit">each</field>
|
|
<field name="sequence">30</field>
|
|
</record>
|
|
<record id="step_kind_input_fin_defect" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_final_inspect"/>
|
|
<field name="name">Defect Categorization</field>
|
|
<field name="input_type">selection</field>
|
|
<field name="selection_options">pitting,burn,blister,peel,missing coverage,dimensional,none</field>
|
|
<field name="sequence">35</field>
|
|
</record>
|
|
<record id="step_kind_input_fin_thick" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_final_inspect"/>
|
|
<field name="name">Actual Coating Thickness</field>
|
|
<field name="input_type">multi_point_thickness</field>
|
|
<field name="target_unit">in</field>
|
|
<field name="sequence">40</field>
|
|
</record>
|
|
<record id="step_kind_input_fin_dim" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_final_inspect"/>
|
|
<field name="name">Dimensional Verification</field>
|
|
<field name="input_type">pass_fail</field>
|
|
<field name="sequence">45</field>
|
|
</record>
|
|
<record id="step_kind_input_fin_ra" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_final_inspect"/>
|
|
<field name="name">Surface Finish (Ra)</field>
|
|
<field name="input_type">number</field>
|
|
<field name="hint">µin</field>
|
|
<field name="sequence">47</field>
|
|
</record>
|
|
<record id="step_kind_input_fin_pass" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_final_inspect"/>
|
|
<field name="name">Pass/Fail</field>
|
|
<field name="input_type">pass_fail</field>
|
|
<field name="sequence">50</field>
|
|
<field name="required">True</field>
|
|
</record>
|
|
<record id="step_kind_input_fin_sig" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_final_inspect"/>
|
|
<field name="name">Inspector Signature</field>
|
|
<field name="input_type">signature</field>
|
|
<field name="sequence">60</field>
|
|
</record>
|
|
|
|
<!-- packaging -->
|
|
<record id="step_kind_input_pkg_type" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_packaging"/>
|
|
<field name="name">Packaging Type</field>
|
|
<field name="input_type">selection</field>
|
|
<field name="selection_options">VCI bag,bubble wrap,separator paper,custom crate,other</field>
|
|
<field name="sequence">10</field>
|
|
</record>
|
|
<record id="step_kind_input_pkg_qty" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_packaging"/>
|
|
<field name="name">Qty Per Package</field>
|
|
<field name="input_type">number</field>
|
|
<field name="target_unit">each</field>
|
|
<field name="sequence">20</field>
|
|
</record>
|
|
<record id="step_kind_input_pkg_count" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_packaging"/>
|
|
<field name="name">Package Count</field>
|
|
<field name="input_type">number</field>
|
|
<field name="sequence">30</field>
|
|
</record>
|
|
<record id="step_kind_input_pkg_cert" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_packaging"/>
|
|
<field name="name">Cert Package Included</field>
|
|
<field name="input_type">boolean</field>
|
|
<field name="sequence">40</field>
|
|
</record>
|
|
<record id="step_kind_input_pkg_cust" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_packaging"/>
|
|
<field name="name">Customer-Supplied Packaging</field>
|
|
<field name="input_type">boolean</field>
|
|
<field name="sequence">50</field>
|
|
</record>
|
|
|
|
<!-- ship -->
|
|
<record id="step_kind_input_ship_qty" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_ship"/>
|
|
<field name="name">Outgoing Qty</field>
|
|
<field name="input_type">number</field>
|
|
<field name="target_unit">each</field>
|
|
<field name="sequence">10</field>
|
|
<field name="required">True</field>
|
|
</record>
|
|
<record id="step_kind_input_ship_carrier" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_ship"/>
|
|
<field name="name">Carrier</field>
|
|
<field name="input_type">selection</field>
|
|
<field name="selection_options">UPS,FedEx,Purolator,Customer Pickup,Other</field>
|
|
<field name="sequence">20</field>
|
|
</record>
|
|
<record id="step_kind_input_ship_track" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_ship"/>
|
|
<field name="name">Tracking #</field>
|
|
<field name="input_type">text</field>
|
|
<field name="sequence">30</field>
|
|
</record>
|
|
<record id="step_kind_input_ship_bol" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_ship"/>
|
|
<field name="name">BoL #</field>
|
|
<field name="input_type">text</field>
|
|
<field name="sequence">40</field>
|
|
</record>
|
|
<record id="step_kind_input_ship_photo" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_ship"/>
|
|
<field name="name">Photo of Sealed Shipment</field>
|
|
<field name="input_type">photo</field>
|
|
<field name="sequence">50</field>
|
|
</record>
|
|
|
|
<!-- contract_review -->
|
|
<record id="step_kind_input_cr_init" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_contract_review"/>
|
|
<field name="name">Reviewer Initials</field>
|
|
<field name="input_type">signature</field>
|
|
<field name="sequence">10</field>
|
|
</record>
|
|
<record id="step_kind_input_cr_date" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_contract_review"/>
|
|
<field name="name">Date Reviewed</field>
|
|
<field name="input_type">date</field>
|
|
<field name="sequence">20</field>
|
|
</record>
|
|
<record id="step_kind_input_cr_qa" model="fp.step.kind.default.input">
|
|
<field name="kind_id" ref="step_kind_contract_review"/>
|
|
<field name="name">QA-005 Approved</field>
|
|
<field name="input_type">pass_fail</field>
|
|
<field name="sequence">30</field>
|
|
</record>
|
|
|
|
<!-- gating: intentionally no default inputs -->
|
|
|
|
</data>
|
|
</odoo>
|