From 274236d34cb8f4b15a15daa21a267d58edfb0299 Mon Sep 17 00:00:00 2001 From: gsinghpal Date: Thu, 23 Apr 2026 08:24:57 -0400 Subject: [PATCH] =?UTF-8?q?fix(plating):=20rename=20opt=5Fin=5Fout=20label?= =?UTF-8?q?s=20=E2=80=94=20'Required'=20replaces=20'Disabled'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit User feedback: "Disabled" was confusing; it looked like the step was turned off entirely when in fact the semantic meant "every job runs this, cannot be removed". Aligning labels with Steelhead's own terminology and the mental model the shop floor already uses: Python Selection values (unchanged: disabled / opt_out / opt_in) disabled → "Required" opt_out → "Opt-Out (included by default, can be removed per job)" opt_in → "Opt-In (excluded by default, can be added per job)" Tree-editor side panel inline labels match, plus a short helper line under the dropdown: "Required — every job runs this step. Opt-Out — ships included, estimator can remove per job. Opt-In — ships excluded, estimator can add per job." Field string also flipped from "Opt In/Out" to "Step Usage" — the new header reads closer to what the field actually controls. Column order also flipped so the Opt-Out option appears above Opt-In — matches the frequency in real recipes (most optional steps are included by default and sometimes skipped, not the other way around). fusion_plating → 19.0.7.4.0 Co-Authored-By: Claude Opus 4.7 (1M context) --- fusion_plating/fusion_plating/__manifest__.py | 2 +- .../fusion_plating/models/fp_process_node.py | 16 +++++++++++----- .../static/src/xml/recipe_tree_editor.xml | 15 ++++++++++----- 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/fusion_plating/fusion_plating/__manifest__.py b/fusion_plating/fusion_plating/__manifest__.py index e9d774e9..0289596c 100644 --- a/fusion_plating/fusion_plating/__manifest__.py +++ b/fusion_plating/fusion_plating/__manifest__.py @@ -5,7 +5,7 @@ { 'name': 'Fusion Plating', - 'version': '19.0.7.3.0', + 'version': '19.0.7.4.0', 'category': 'Manufacturing/Plating', 'summary': 'Core plating / metal finishing ERP: facilities, processes, tanks, baths, jobs, operators.', 'description': """ diff --git a/fusion_plating/fusion_plating/models/fp_process_node.py b/fusion_plating/fusion_plating/models/fp_process_node.py index 52a8ee7f..d3141b83 100644 --- a/fusion_plating/fusion_plating/models/fp_process_node.py +++ b/fusion_plating/fusion_plating/models/fp_process_node.py @@ -172,13 +172,19 @@ class FpProcessNode(models.Model): ) opt_in_out = fields.Selection( [ - ('disabled', 'Always Included'), - ('opt_out', 'Included by Default'), - ('opt_in', 'Excluded by Default'), + ('disabled', 'Required'), + ('opt_out', 'Opt-Out (included by default, can be removed per job)'), + ('opt_in', 'Opt-In (excluded by default, can be added per job)'), ], - string='Opt In/Out', + string='Step Usage', default='disabled', - help='Controls whether this step is optional for a given job.', + help='Controls whether this step can be skipped or added on a ' + 'per-job basis:\n' + ' * Required — every job runs this step. Cannot be removed.\n' + ' * Opt-Out — included by default; an estimator can remove ' + 'it per job when the customer doesn\'t need it.\n' + ' * Opt-In — excluded by default; an estimator can add it ' + 'per job when the customer specifically asks for it.', tracking=True, ) diff --git a/fusion_plating/fusion_plating/static/src/xml/recipe_tree_editor.xml b/fusion_plating/fusion_plating/static/src/xml/recipe_tree_editor.xml index 124e2e9c..8c2e3b83 100644 --- a/fusion_plating/fusion_plating/static/src/xml/recipe_tree_editor.xml +++ b/fusion_plating/fusion_plating/static/src/xml/recipe_tree_editor.xml @@ -353,16 +353,21 @@
- + + + Required — every job runs this step. + Opt-Out — ships included, estimator can remove per job. + Opt-In — ships excluded, estimator can add per job. +