From 2582ee630b25c611596cf7498bd0d6439aa5cbd7 Mon Sep 17 00:00:00 2001 From: Elouan Le Bars Date: Wed, 20 Nov 2019 11:00:31 +0100 Subject: [PATCH] [IMP] b_shift : attendance sheets linting and menu sequences --- beesdoo_shift/models/attendance_sheet.py | 30 +++++++++++-------- beesdoo_shift/views/attendance_sheet.xml | 1 + .../wizard/generate_attendance_sheet.xml | 1 - 3 files changed, 19 insertions(+), 13 deletions(-) diff --git a/beesdoo_shift/models/attendance_sheet.py b/beesdoo_shift/models/attendance_sheet.py index 6345381..aa51b7e 100644 --- a/beesdoo_shift/models/attendance_sheet.py +++ b/beesdoo_shift/models/attendance_sheet.py @@ -280,15 +280,20 @@ class AttendanceSheet(models.Model): @api.constrains("expected_shift_ids", "added_shift_ids") def _constrain_unique_worker(self): - added_workers = set(self.added_shift_ids.mapped("worker_id").ids) - expected_workers = self.expected_shift_ids.mapped("worker_id").ids - replacement_workers = self.expected_shift_ids.mapped( - "replacement_worker_id" - ).ids - if len( - added_workers.intersection(replacement_workers + expected_workers) - ): - raise UserError("You can't add an already expected worker.") + # Warning : map return generator in python3 (for Odoo 12) + added_workers_ids = map(lambda s: s.worker_id.id, self.added_shift_ids) + expected_workers_ids = map( + lambda s: s.worker_id.id, self.expected_shift_ids + ) + replacement_workers_ids = map( + lambda s: s.replacement_worker_id.id, self.expected_shift_ids + ) + ids = ( + added_workers_ids + expected_workers_ids + replacement_workers_ids + ) + + if len(ids) - len(set(ids)): + raise UserError("You can't add the same worker more than once.") @api.depends("added_shift_ids") def _compute_added_shift_nb(self): @@ -296,7 +301,6 @@ class AttendanceSheet(models.Model): return # Compute name (not hardcorded to prevent incoherence with timezone) - # Actually not working, should depends on timezone as well @api.depends("start_time", "end_time") def _compute_name(self): @@ -481,6 +485,8 @@ class AttendanceSheet(models.Model): } def on_barcode_scanned(self, barcode): - import pdb; pdb.set_trace() - worker = self.env["res.partner"].search([("barcode","=",barcode)]) + import pdb + + pdb.set_trace() + worker = self.env["res.partner"].search([("barcode", "=", barcode)]) self.name = barcode diff --git a/beesdoo_shift/views/attendance_sheet.xml b/beesdoo_shift/views/attendance_sheet.xml index 615dd4a..2d7a65e 100644 --- a/beesdoo_shift/views/attendance_sheet.xml +++ b/beesdoo_shift/views/attendance_sheet.xml @@ -153,6 +153,7 @@ name="Daily attendance sheets" parent="menu_sheet_top" action="action_sheet_daily" + sequence="2" /> diff --git a/beesdoo_shift/wizard/generate_attendance_sheet.xml b/beesdoo_shift/wizard/generate_attendance_sheet.xml index 7e0d43e..6154abb 100644 --- a/beesdoo_shift/wizard/generate_attendance_sheet.xml +++ b/beesdoo_shift/wizard/generate_attendance_sheet.xml @@ -31,7 +31,6 @@ name="Generate a sheet" parent="menu_sheet_top" action="action_generate_sheet_wizard" - sequence="5" />