From 08ababc2c70de9e76ee646984f1821c7c67d87bd Mon Sep 17 00:00:00 2001 From: gsinghpal Date: Sat, 23 May 2026 00:16:52 -0400 Subject: [PATCH] feat(fusion_plating_shopfloor): station roster + idle override + tablet config defaults (P6.1.6) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds two fields to fusion.plating.shopfloor.station: - x_fc_authorised_user_ids (Many2many → res.users): restricts the tablet lock-screen tile grid to a specific roster per station. Empty = all operator-group users shown. - x_fc_idle_lock_minutes (Integer, nullable): per-station override for the auto-lock idle threshold; null = use system parameter. Plus data/fp_tablet_config_data.xml registers four ir.config_parameter defaults (noupdate=1 — manager can override via Settings → Technical → Parameters): fp.shopfloor.tablet_idle_lock_minutes = 5 fp.shopfloor.tablet_pin_fail_threshold = 5 fp.shopfloor.tablet_pin_fail_lockout_minutes = 5 fp.shopfloor.tablet_warn_seconds_before_lock = 30 Form view surfaces both new fields in a dedicated 'Tablet PIN Gate' group. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../fusion_plating_shopfloor/__manifest__.py | 1 + .../data/fp_tablet_config_data.xml | 31 +++++++++++++++++++ .../models/fp_shopfloor_station.py | 20 ++++++++++++ .../views/fp_shopfloor_station_views.xml | 7 +++++ 4 files changed, 59 insertions(+) create mode 100644 fusion_plating/fusion_plating_shopfloor/data/fp_tablet_config_data.xml diff --git a/fusion_plating/fusion_plating_shopfloor/__manifest__.py b/fusion_plating/fusion_plating_shopfloor/__manifest__.py index 38dba377..ae2a3253 100644 --- a/fusion_plating/fusion_plating_shopfloor/__manifest__.py +++ b/fusion_plating/fusion_plating_shopfloor/__manifest__.py @@ -45,6 +45,7 @@ Copyright (c) 2026 Nexa Systems Inc. All rights reserved. 'security/ir.model.access.csv', 'data/fp_sequence_data.xml', 'data/fp_cron_data.xml', + 'data/fp_tablet_config_data.xml', 'views/fp_shopfloor_station_views.xml', 'views/fp_bake_oven_views.xml', 'views/fp_bake_window_views.xml', diff --git a/fusion_plating/fusion_plating_shopfloor/data/fp_tablet_config_data.xml b/fusion_plating/fusion_plating_shopfloor/data/fp_tablet_config_data.xml new file mode 100644 index 00000000..a7df1ff1 --- /dev/null +++ b/fusion_plating/fusion_plating_shopfloor/data/fp_tablet_config_data.xml @@ -0,0 +1,31 @@ + + + + + + fp.shopfloor.tablet_idle_lock_minutes + 5 + + + + fp.shopfloor.tablet_pin_fail_threshold + 5 + + + + fp.shopfloor.tablet_pin_fail_lockout_minutes + 5 + + + + fp.shopfloor.tablet_warn_seconds_before_lock + 30 + + + diff --git a/fusion_plating/fusion_plating_shopfloor/models/fp_shopfloor_station.py b/fusion_plating/fusion_plating_shopfloor/models/fp_shopfloor_station.py index bafa4080..34409b15 100644 --- a/fusion_plating/fusion_plating_shopfloor/models/fp_shopfloor_station.py +++ b/fusion_plating/fusion_plating_shopfloor/models/fp_shopfloor_station.py @@ -73,6 +73,26 @@ class FpShopfloorStation(models.Model): string='Notes', ) + # Phase 6 tablet PIN gate — per-station roster + idle override. + x_fc_authorised_user_ids = fields.Many2many( + 'res.users', + relation='fp_shopfloor_station_authorised_user_rel', + column1='station_id', + column2='user_id', + string='Authorised Operators', + help='If set, the tablet lock screen only shows tiles for these ' + 'users. Empty = all operator-group users are shown. Use to ' + 'restrict a tablet at a specialised station (e.g. EN Plating) ' + 'to techs trained on that station.', + ) + x_fc_idle_lock_minutes = fields.Integer( + string='Idle Lock (minutes)', + help='Per-station override for the auto-lock idle threshold. ' + 'Leave blank to use the global default ' + '(ir.config_parameter fp.shopfloor.tablet_idle_lock_minutes, ' + 'default 5).', + ) + _sql_constraints = [ ( 'fp_shopfloor_station_code_uniq', diff --git a/fusion_plating/fusion_plating_shopfloor/views/fp_shopfloor_station_views.xml b/fusion_plating/fusion_plating_shopfloor/views/fp_shopfloor_station_views.xml index 4b787433..fba61866 100644 --- a/fusion_plating/fusion_plating_shopfloor/views/fp_shopfloor_station_views.xml +++ b/fusion_plating/fusion_plating_shopfloor/views/fp_shopfloor_station_views.xml @@ -49,6 +49,13 @@ + + + +