diff --git a/beesdoo_shift/models/attendance_sheet.py b/beesdoo_shift/models/attendance_sheet.py index 0e90ee4..e01d275 100644 --- a/beesdoo_shift/models/attendance_sheet.py +++ b/beesdoo_shift/models/attendance_sheet.py @@ -55,6 +55,11 @@ class AttendanceSheetShift(models.AbstractModel): task_type_id = fields.Many2one( "beesdoo.shift.type", string="Task Type", default=default_task_type_id ) + super_coop_id = fields.Many2one( + "res.users", + string="Super Cooperative", + domain=[("partner_id.super", "=", True)], + ) working_mode = fields.Selection( related="worker_id.working_mode", string="Working Mode", store=True ) @@ -159,6 +164,14 @@ class AttendanceSheet(models.Model): ) end_time = fields.Datetime(string="End Time", required=True, readonly=True) + default_super_coop_id = fields.Many2one( + "res.users", + string="Default Super Cooperative", + help="Super Cooperative for default Task Type", + domain=[("partner_id.super", "=", True)], + compute="_compute_default_super_coop_id", + store=True, + ) expected_shift_ids = fields.One2many( "beesdoo.shift.sheet.expected", "attendance_sheet_id", @@ -208,7 +221,6 @@ class AttendanceSheet(models.Model): string="Validated by", domain=[ ("eater", "=", "worker_eater"), - ("super", "=", True), ("working_mode", "=", "regular"), ("state", "not in", ("unsubscribed", "resigning")), ], @@ -277,6 +289,24 @@ class AttendanceSheet(models.Model): + end_time_dt.strftime("%H:%M") ) + @api.depends("expected_shift_ids") + def _compute_default_super_coop_id(self): + """ + Look for the super cooperator of a shift + with default Task Type + """ + default_task_type = self.env[ + "beesdoo.shift.sheet.expected" + ].default_task_type_id() + shift = self.expected_shift_ids.search( + [ + ("task_type_id", "=", default_task_type.id), + ("super_coop_id", "!=", False), + ], + limit=1, + ) + self.default_super_coop_id = shift.super_coop_id + # Is this method necessary ? @api.depends("annotation") def _compute_is_annotated(self): @@ -312,6 +342,7 @@ class AttendanceSheet(models.Model): "worker_id": task.worker_id.id, "replacement_worker_id": task.replaced_id.id, "task_type_id": task.task_type_id.id, + "super_coop_id": task.super_coop_id.id, "stage": stage, "working_mode": task.working_mode, } diff --git a/beesdoo_shift/views/attendance_sheet.xml b/beesdoo_shift/views/attendance_sheet.xml index a819d0b..7cf9d14 100644 --- a/beesdoo_shift/views/attendance_sheet.xml +++ b/beesdoo_shift/views/attendance_sheet.xml @@ -10,6 +10,7 @@ decoration-danger="stage == 'absent_0' or stage == 'absent_1' or stage == 'absent_2'" decoration-success="stage == 'present'"> + Attendance Sheet List beesdoo.shift.sheet - - - + + + + @@ -134,6 +137,7 @@ +