From 6fc398ed67fabebf443040a351be7a10b2b9c8b5 Mon Sep 17 00:00:00 2001 From: Elouan Le Bars Date: Thu, 7 Nov 2019 15:30:57 +0100 Subject: [PATCH] [ADD] b_shift : attendance shift validation barcode field --- beesdoo_shift/wizard/validate_attendance_sheet.py | 15 ++++++++++++++- .../wizard/validate_attendance_sheet.xml | 1 + 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/beesdoo_shift/wizard/validate_attendance_sheet.py b/beesdoo_shift/wizard/validate_attendance_sheet.py index dc81004..9dc9505 100644 --- a/beesdoo_shift/wizard/validate_attendance_sheet.py +++ b/beesdoo_shift/wizard/validate_attendance_sheet.py @@ -12,11 +12,24 @@ class ValidateAttendanceSheet(models.TransientModel): return self._context.get("active_id") # current user as default value ! - user = fields.Many2one("res.partner", string="User Name", required=True,) + #card = fields.Many2one("member.card", string="MemberCard") + barcode = fields.Char(string="Barcode", required=True) + user = fields.Many2one("res.partner", compute="_compute_user", string="User Name", readonly=True) + + @api.depends("barcode") + def _compute_user(self): + if self.barcode: + card = self.env["member.card"].search([("barcode", "=", self.barcode)]) + if card: + self.user = card[0].partner_id + else: + self.user = False # Is the "@api.multi" correct here ? @api.multi def validate_sheet(self): + if not self.user: + raise UserError("Please set a correct barcode.") sheet_id = self._context.get("active_id") sheet_model = self._context.get("active_model") sheet = self.env[sheet_model].browse(sheet_id) diff --git a/beesdoo_shift/wizard/validate_attendance_sheet.xml b/beesdoo_shift/wizard/validate_attendance_sheet.xml index d68de37..f443f06 100644 --- a/beesdoo_shift/wizard/validate_attendance_sheet.xml +++ b/beesdoo_shift/wizard/validate_attendance_sheet.xml @@ -8,6 +8,7 @@ Emails will be sent to workers who did not attend their shift." /> +