From e216614c38632795dcbd79481607ac2b99f5e6e5 Mon Sep 17 00:00:00 2001 From: Elouan Le Bars Date: Tue, 14 Jan 2020 18:10:48 +0100 Subject: [PATCH] [REF] b_shift : code cleaning --- beesdoo_shift/models/attendance_sheet.py | 44 +++++++++---------- beesdoo_shift/models/res_config.py | 7 +-- beesdoo_shift/security/group.xml | 5 --- .../wizard/validate_attendance_sheet.py | 19 +++++--- 4 files changed, 37 insertions(+), 38 deletions(-) diff --git a/beesdoo_shift/models/attendance_sheet.py b/beesdoo_shift/models/attendance_sheet.py index 607cdba..ab7eff4 100644 --- a/beesdoo_shift/models/attendance_sheet.py +++ b/beesdoo_shift/models/attendance_sheet.py @@ -18,10 +18,7 @@ class AttendanceSheetShift(models.AbstractModel): @api.model def default_task_type_id(self): parameters = self.env["ir.config_parameter"] - id = ( - int(parameters.get_param("beesdoo_shift.default_task_type_id")) - or 1 - ) + id = int(parameters.get_param("beesdoo_shift.default_task_type_id", default=1)) task_types = self.env["beesdoo.shift.type"] return task_types.browse(id) @@ -293,12 +290,13 @@ class AttendanceSheet(models.Model): @api.constrains("expected_shift_ids", "added_shift_ids") def _constrain_unique_worker(self): # Warning : map return generator in python3 (for Odoo 12) - added_ids = map(lambda s: s.worker_id.id, self.added_shift_ids) - expected_ids = map(lambda s: s.worker_id.id, self.expected_shift_ids) - replacement_ids = map( - lambda s: s.replacement_worker_id.id, self.expected_shift_ids - ) - replacement_ids = filter(bool, replacement_ids) + added_ids = [s.worker_id.id for s in self.added_shift_ids] + expected_ids = [s.worker_id.id for s in self.expected_shift_ids] + replacement_ids = [ + s.replacement_worker_id.id + for s in self.expected_shift_ids + if s.replacement_worker_id.id + ] ids = added_ids + expected_ids + replacement_ids if (len(ids) - len(set(ids))) > 0: @@ -363,7 +361,7 @@ class AttendanceSheet(models.Model): worker.working_mode, ) - # expected shifts status update + # Expected shifts status update for id in self.expected_shift_ids.ids: shift = self.env["beesdoo.shift.sheet.expected"].browse(id) if ( @@ -380,19 +378,17 @@ class AttendanceSheet(models.Model): added_ids = map(lambda s: s.worker_id.id, self.added_shift_ids) - if worker.id in added_ids: - return - - # added shift creation - self.added_shift_ids |= self.added_shift_ids.new( - { - "task_type_id": self.added_shift_ids.default_task_type_id(), - "state": "done", - "attendance_sheet_id": self._origin.id, - "worker_id": worker.id, - "is_compensation": is_compensation, - } - ) + if worker.id not in added_ids: + # Added shift creation + self.added_shift_ids |= self.added_shift_ids.new( + { + "task_type_id": self.added_shift_ids.default_task_type_id(), + "state": "done", + "attendance_sheet_id": self._origin.id, + "worker_id": worker.id, + "is_compensation": is_compensation, + } + ) @api.model def create(self, vals): diff --git a/beesdoo_shift/models/res_config.py b/beesdoo_shift/models/res_config.py index aed6d87..ba6e7bb 100644 --- a/beesdoo_shift/models/res_config.py +++ b/beesdoo_shift/models/res_config.py @@ -3,6 +3,8 @@ # Copyright 2019-2020 Elouan Le Bars # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +import ast + from openerp import fields, models, api @@ -12,7 +14,7 @@ class ShiftConfigSettings(models.TransientModel): card_support = fields.Boolean( string="Scan cooperators cards instead of login for sheets validation", - default=False + default=False, ) default_task_type_id = fields.Many2one( "beesdoo.shift.type", @@ -45,11 +47,10 @@ class ShiftConfigSettings(models.TransientModel): @api.multi def get_default_card_support(self): return { - "card_support": ( + "card_support": ast.literal_eval( self.env["ir.config_parameter"].get_param( "beesdoo_shift.card_support" ) - == "True" ) } diff --git a/beesdoo_shift/security/group.xml b/beesdoo_shift/security/group.xml index c951f45..6e1b37f 100644 --- a/beesdoo_shift/security/group.xml +++ b/beesdoo_shift/security/group.xml @@ -30,10 +30,5 @@ - - - diff --git a/beesdoo_shift/wizard/validate_attendance_sheet.py b/beesdoo_shift/wizard/validate_attendance_sheet.py index 246a542..3161b0c 100644 --- a/beesdoo_shift/wizard/validate_attendance_sheet.py +++ b/beesdoo_shift/wizard/validate_attendance_sheet.py @@ -1,4 +1,7 @@ # -*- coding: utf-8 -*- + +import ast + from openerp import _, api, exceptions, fields, models from openerp.exceptions import UserError, ValidationError @@ -18,11 +21,10 @@ class ValidateAttendanceSheet(models.TransientModel): return self.env[sheet_model].browse(sheet_id) def _get_card_support_setting(self): - return ( + return ast.literal_eval( self.env["ir.config_parameter"].get_param( "beesdoo_shift.card_support" ) - == "True" ) @api.multi @@ -36,7 +38,9 @@ class ValidateAttendanceSheet(models.TransientModel): warning_message = "" if sheet: for added_shift in sheet.added_shift_ids: - is_regular_worker = added_shift.worker_id.working_mode == "regular" + is_regular_worker = ( + added_shift.worker_id.working_mode == "regular" + ) is_compensation = added_shift.is_compensation if is_regular_worker and not is_compensation: @@ -68,15 +72,18 @@ class ValidateAttendanceSheet(models.TransientModel): login = fields.Char(string="Login") password = fields.Char(string="Password") barcode = fields.Char(string="Barcode") - warning_regular_workers = fields.Text("Warning", + warning_regular_workers = fields.Text( + "Warning", default=_get_warning_regular_workers, - help="Is any regular worker doing its regular shift as an added one ?" + help="Is any regular worker doing its regular shift as an added one ?", ) notes = fields.Text( "Notes about the attendance for Members Office", default=_get_default_notes, ) - feedback = fields.Text("Comments about the shift", default=_get_default_feedback) + feedback = fields.Text( + "Comments about the shift", default=_get_default_feedback + ) worker_nb_feedback = fields.Selection( [ ("not_enough", "Not enough"),