From 2e17db2f51c3cef6e2797e6ad9081419f5c54f0f Mon Sep 17 00:00:00 2001 From: William Braeckman Date: Thu, 29 Jul 2021 11:13:32 +0000 Subject: [PATCH] [FIX] hr_attendance: fix necessary fields not present `attendance_state`, `hours_today` and `last_attendnace_id` are required to open up the attendance app, but were not available to the public user since commit b429fce0e691b337088ddf12c9f5a686b30c688f Task ID: 2607436 --- addons/hr_attendance/models/__init__.py | 1 + addons/hr_attendance/models/hr_employee.py | 7 ++++--- addons/hr_attendance/models/hr_employee_public.py | 15 +++++++++++++++ 3 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 addons/hr_attendance/models/hr_employee_public.py diff --git a/addons/hr_attendance/models/__init__.py b/addons/hr_attendance/models/__init__.py index ebbcbe2deb6..559547ab8cc 100644 --- a/addons/hr_attendance/models/__init__.py +++ b/addons/hr_attendance/models/__init__.py @@ -4,6 +4,7 @@ from . import res_config_settings from . import hr_attendance from . import hr_attendance_overtime from . import hr_employee +from . import hr_employee_public from . import ir_ui_menu from . import res_company from . import res_users diff --git a/addons/hr_attendance/models/hr_employee.py b/addons/hr_attendance/models/hr_employee.py index c68d71c6bfd..1875211df1a 100644 --- a/addons/hr_attendance/models/hr_employee.py +++ b/addons/hr_attendance/models/hr_employee.py @@ -16,7 +16,7 @@ class HrEmployee(models.Model): help='list of attendances for the employee') last_attendance_id = fields.Many2one( 'hr.attendance', compute='_compute_last_attendance_id', store=True, - groups="hr_attendance.group_hr_attendance_user") + groups="hr_attendance.group_hr_attendance_kiosk,hr_attendance.group_hr_attendance") last_check_in = fields.Datetime( related='last_attendance_id.check_in', store=True, groups="hr_attendance.group_hr_attendance_user") @@ -26,11 +26,12 @@ class HrEmployee(models.Model): attendance_state = fields.Selection( string="Attendance Status", compute='_compute_attendance_state', selection=[('checked_out', "Checked out"), ('checked_in', "Checked in")], - groups="hr_attendance.group_hr_attendance_user") + groups="hr_attendance.group_hr_attendance_kiosk,hr_attendance.group_hr_attendance") hours_last_month = fields.Float( compute='_compute_hours_last_month', groups="hr_attendance.group_hr_attendance_user") hours_today = fields.Float( - compute='_compute_hours_today', groups="hr_attendance.group_hr_attendance_user") + compute='_compute_hours_today', + groups="hr_attendance.group_hr_attendance_kiosk,hr_attendance.group_hr_attendance") hours_last_month_display = fields.Char( compute='_compute_hours_last_month', groups="hr_attendance.group_hr_attendance_user") overtime_ids = fields.One2many( diff --git a/addons/hr_attendance/models/hr_employee_public.py b/addons/hr_attendance/models/hr_employee_public.py new file mode 100644 index 00000000000..1287a184fb1 --- /dev/null +++ b/addons/hr_attendance/models/hr_employee_public.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import fields, models + +class HrEmployeePublic(models.Model): + _inherit = 'hr.employee.public' + + # These are required for manual attendance + attendance_state = fields.Selection(related='employee_id.attendance_state', readonly=True, + groups="hr_attendance.group_hr_attendance_kiosk,hr_attendance.group_hr_attendance") + hours_today = fields.Float(related='employee_id.hours_today', readonly=True, + groups="hr_attendance.group_hr_attendance_kiosk,hr_attendance.group_hr_attendance") + last_attendance_id = fields.Many2one(related='employee_id.last_attendance_id', readonly=True, + groups="hr_attendance.group_hr_attendance_kiosk,hr_attendance.group_hr_attendance")