From 0f751d82ccc19b9b942c85f20e840f95dc02cb78 Mon Sep 17 00:00:00 2001 From: gsinghpal Date: Sun, 24 May 2026 10:34:09 -0400 Subject: [PATCH] feat(shopfloor): add Record Inputs button to Job Workspace step row MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Operators trying to Finish a step with required step_input prompts got the S21 gate error telling them to 'Click Record Inputs on the step row' — but the workspace UI never exposed that button. Only the job-form view had it. Adds a 'Record Inputs' secondary button next to Finish/Finish & Sign Off when the step is active. Click opens the fp_record_inputs_dialog (via action_open_input_wizard on fp.job.step). On dialog close the workspace refreshes so the step's progress chip updates. Module version: 19.0.32.0.10 -> 19.0.32.0.11 Co-Authored-By: Claude Opus 4.7 (1M context) --- .../fusion_plating_shopfloor/__manifest__.py | 2 +- .../static/src/js/job_workspace.js | 21 +++++++++++++++++++ .../static/src/xml/job_workspace.xml | 4 ++++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/fusion_plating/fusion_plating_shopfloor/__manifest__.py b/fusion_plating/fusion_plating_shopfloor/__manifest__.py index 5f310dbe..3f534cb9 100644 --- a/fusion_plating/fusion_plating_shopfloor/__manifest__.py +++ b/fusion_plating/fusion_plating_shopfloor/__manifest__.py @@ -5,7 +5,7 @@ { 'name': 'Fusion Plating — Shop Floor', - 'version': '19.0.32.0.10', + 'version': '19.0.32.0.11', 'category': 'Manufacturing/Plating', 'summary': 'Shop-floor tablet stations, QR scanning, bake window enforcer, ' 'first-piece inspection gates.', diff --git a/fusion_plating/fusion_plating_shopfloor/static/src/js/job_workspace.js b/fusion_plating/fusion_plating_shopfloor/static/src/js/job_workspace.js index fc74a901..b3d1d06f 100644 --- a/fusion_plating/fusion_plating_shopfloor/static/src/js/job_workspace.js +++ b/fusion_plating/fusion_plating_shopfloor/static/src/js/job_workspace.js @@ -153,6 +153,27 @@ export class FpJobWorkspace extends Component { } } + async onRecordInputs(step) { + // Opens the fp_record_inputs_dialog via action_open_input_wizard. + // Lets the operator enter required step_input prompt values before + // hitting Finish (S21 gate enforces the values be recorded). + try { + const result = await rpc("/web/dataset/call_kw", { + model: "fp.job.step", + method: "action_open_input_wizard", + args: [[step.id]], + kwargs: {}, + }); + if (result) { + await this.action.doAction(result, { + onClose: () => this.refresh(), + }); + } + } catch (err) { + this.notification.add(err.message || "Couldn't open Record Inputs", { type: "danger" }); + } + } + async onFinishStep(step) { if (step.requires_signoff) { this.dialog.add(FpSignaturePad, { diff --git a/fusion_plating/fusion_plating_shopfloor/static/src/xml/job_workspace.xml b/fusion_plating/fusion_plating_shopfloor/static/src/xml/job_workspace.xml index cb403cc6..bb282052 100644 --- a/fusion_plating/fusion_plating_shopfloor/static/src/xml/job_workspace.xml +++ b/fusion_plating/fusion_plating_shopfloor/static/src/xml/job_workspace.xml @@ -143,6 +143,10 @@
+