Files
Odoo-Modules/fusion_plating/fusion_plating_configurator/security/ir.model.access.csv
gsinghpal b187192c58 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>
2026-04-29 22:13:54 -04:00

7.4 KiB

1idnamemodel_id:idgroup_id:idperm_readperm_writeperm_createperm_unlink
2access_fp_treatment_operatorfp.treatment.operatormodel_fp_treatmentfusion_plating.group_fusion_plating_operator1000
3access_fp_treatment_supervisorfp.treatment.supervisormodel_fp_treatmentfusion_plating.group_fusion_plating_supervisor1100
4access_fp_treatment_managerfp.treatment.managermodel_fp_treatmentfusion_plating.group_fusion_plating_manager1111
5access_fp_part_catalog_operatorfp.part.catalog.operatormodel_fp_part_catalogfusion_plating.group_fusion_plating_operator1000
6access_fp_part_catalog_estimatorfp.part.catalog.estimatormodel_fp_part_catalogfusion_plating_configurator.group_fp_estimator1110
7access_fp_part_catalog_managerfp.part.catalog.managermodel_fp_part_catalogfusion_plating.group_fusion_plating_manager1111
8access_fp_coating_config_operatorfp.coating.config.operatormodel_fp_coating_configfusion_plating.group_fusion_plating_operator1000
9access_fp_coating_config_estimatorfp.coating.config.estimatormodel_fp_coating_configfusion_plating_configurator.group_fp_estimator1110
10access_fp_coating_config_managerfp.coating.config.managermodel_fp_coating_configfusion_plating.group_fusion_plating_manager1111
11access_fp_pricing_rule_operatorfp.pricing.rule.operatormodel_fp_pricing_rulefusion_plating.group_fusion_plating_operator1000
12access_fp_pricing_rule_estimatorfp.pricing.rule.estimatormodel_fp_pricing_rulefusion_plating_configurator.group_fp_estimator1110
13access_fp_pricing_rule_managerfp.pricing.rule.managermodel_fp_pricing_rulefusion_plating.group_fusion_plating_manager1111
14access_fp_pricing_surcharge_operatorfp.pricing.complexity.surcharge.operatormodel_fp_pricing_complexity_surchargefusion_plating.group_fusion_plating_operator1000
15access_fp_pricing_surcharge_estimatorfp.pricing.complexity.surcharge.estimatormodel_fp_pricing_complexity_surchargefusion_plating_configurator.group_fp_estimator1110
16access_fp_pricing_surcharge_managerfp.pricing.complexity.surcharge.managermodel_fp_pricing_complexity_surchargefusion_plating.group_fusion_plating_manager1111
17access_fp_quote_configurator_operatorfp.quote.configurator.operatormodel_fp_quote_configuratorfusion_plating.group_fusion_plating_operator1000
18access_fp_quote_configurator_estimatorfp.quote.configurator.estimatormodel_fp_quote_configuratorfusion_plating_configurator.group_fp_estimator1110
19access_fp_quote_configurator_managerfp.quote.configurator.managermodel_fp_quote_configuratorfusion_plating.group_fusion_plating_manager1111
20access_fp_direct_order_wizard_estimatorfp.direct.order.wizard.estimatormodel_fp_direct_order_wizardfusion_plating_configurator.group_fp_estimator1111
21access_fp_direct_order_wizard_managerfp.direct.order.wizard.managermodel_fp_direct_order_wizardfusion_plating.group_fusion_plating_manager1111
22access_fp_direct_order_line_estimatorfp.direct.order.line.estimatormodel_fp_direct_order_linefusion_plating_configurator.group_fp_estimator1111
23access_fp_direct_order_line_managerfp.direct.order.line.managermodel_fp_direct_order_linefusion_plating.group_fusion_plating_manager1111
24access_fp_add_from_so_wizard_estimatorfp.add.from.so.wizard.estimatormodel_fp_add_from_so_wizardfusion_plating_configurator.group_fp_estimator1111
25access_fp_add_from_so_wizard_managerfp.add.from.so.wizard.managermodel_fp_add_from_so_wizardfusion_plating.group_fusion_plating_manager1111
26access_fp_add_from_quote_wizard_estimatorfp.add.from.quote.wizard.estimatormodel_fp_add_from_quote_wizardfusion_plating_configurator.group_fp_estimator1111
27access_fp_add_from_quote_wizard_managerfp.add.from.quote.wizard.managermodel_fp_add_from_quote_wizardfusion_plating.group_fusion_plating_manager1111
28access_fp_quote_promote_wizard_estimatorfp.quote.promote.wizard.estimatormodel_fp_quote_promote_wizardfusion_plating_configurator.group_fp_estimator1111
29access_fp_quote_promote_wizard_managerfp.quote.promote.wizard.managermodel_fp_quote_promote_wizardfusion_plating.group_fusion_plating_manager1111
30access_fp_sale_assembly_userfp.sale.assembly.usermodel_fp_sale_assemblybase.group_user1000
31access_fp_sale_assembly_estimatorfp.sale.assembly.estimatormodel_fp_sale_assemblyfusion_plating_configurator.group_fp_estimator1111
32access_fp_sale_assembly_managerfp.sale.assembly.managermodel_fp_sale_assemblyfusion_plating.group_fusion_plating_manager1111
33access_fp_sale_assembly_line_userfp.sale.assembly.line.usermodel_fp_sale_assembly_linebase.group_user1000
34access_fp_sale_assembly_line_estimatorfp.sale.assembly.line.estimatormodel_fp_sale_assembly_linefusion_plating_configurator.group_fp_estimator1111
35access_fp_sale_assembly_line_managerfp.sale.assembly.line.managermodel_fp_sale_assembly_linefusion_plating.group_fusion_plating_manager1111
36access_fp_part_import_wizard_estimatorfp.part.catalog.import.wizard.estimatormodel_fp_part_catalog_import_wizardfusion_plating_configurator.group_fp_estimator1111
37access_fp_part_import_wizard_managerfp.part.catalog.import.wizard.managermodel_fp_part_catalog_import_wizardfusion_plating.group_fusion_plating_manager1111
38access_fp_customer_price_list_operatorfp.customer.price.list.operatormodel_fp_customer_price_listfusion_plating.group_fusion_plating_operator1000
39access_fp_customer_price_list_estimatorfp.customer.price.list.estimatormodel_fp_customer_price_listfusion_plating_configurator.group_fp_estimator1110
40access_fp_customer_price_list_managerfp.customer.price.list.managermodel_fp_customer_price_listfusion_plating.group_fusion_plating_manager1111
41access_fp_sale_desc_template_userfp.sale.description.template.usermodel_fp_sale_description_templatebase.group_user1000
42access_fp_sale_desc_template_estimatorfp.sale.description.template.estimatormodel_fp_sale_description_templatefusion_plating_configurator.group_fp_estimator1110
43access_fp_sale_desc_template_managerfp.sale.description.template.managermodel_fp_sale_description_templatefusion_plating.group_fusion_plating_manager1111
44access_fp_serial_userfp.serial.usermodel_fp_serialbase.group_user1000
45access_fp_serial_estimatorfp.serial.estimatormodel_fp_serialfusion_plating_configurator.group_fp_estimator1110
46access_fp_serial_managerfp.serial.managermodel_fp_serialfusion_plating.group_fusion_plating_manager1111
47access_fp_serial_bulk_add_estimatorfp.serial.bulk.add.estimatormodel_fp_serial_bulk_add_wizardfusion_plating_configurator.group_fp_estimator1111
48access_fp_serial_bulk_add_managerfp.serial.bulk.add.managermodel_fp_serial_bulk_add_wizardfusion_plating.group_fusion_plating_manager1111
49access_fp_coating_thickness_userfp.coating.thickness.usermodel_fp_coating_thicknessbase.group_user1000
50access_fp_coating_thickness_estimatorfp.coating.thickness.estimatormodel_fp_coating_thicknessfusion_plating_configurator.group_fp_estimator1110
51access_fp_coating_thickness_managerfp.coating.thickness.managermodel_fp_coating_thicknessfusion_plating.group_fusion_plating_manager1111
52access_fp_part_material_userfp.part.material.usermodel_fp_part_materialbase.group_user1000
53access_fp_part_material_estimatorfp.part.material.estimatormodel_fp_part_materialfusion_plating_configurator.group_fp_estimator1110
54access_fp_part_material_managerfp.part.material.managermodel_fp_part_materialfusion_plating.group_fusion_plating_manager1111