diff --git a/addons/hr/models/hr_employee_base.py b/addons/hr/models/hr_employee_base.py index 85c31c3751a..6c36418d652 100644 --- a/addons/hr/models/hr_employee_base.py +++ b/addons/hr/models/hr_employee_base.py @@ -57,6 +57,7 @@ class HrEmployeeBase(models.AbstractModel): ('presence_absent', 'Absent'), ('presence_to_define', 'To define'), ('presence_undetermined', 'Undetermined')], compute='_compute_presence_icon') + show_hr_icon_display = fields.Boolean(compute='_compute_presence_icon') employee_type = fields.Selection([ ('employee', 'Employee'), ('student', 'Student'), @@ -174,6 +175,7 @@ class HrEmployeeBase(models.AbstractModel): """ working_now_list = self.filtered(lambda e: e.hr_presence_state == 'present')._get_employee_working_now() for employee in self: + show_icon = True if employee.hr_presence_state == 'present': if employee.id in working_now_list: icon = 'presence_present' @@ -185,13 +187,13 @@ class HrEmployeeBase(models.AbstractModel): else: # without attendance, default employee state is 'to_define' without confirmed presence/absence # we need to check why they are not there - if employee.user_id: - # Display an orange icon on internal users. - icon = 'presence_to_define' - else: + # Display an orange icon on internal users. + icon = 'presence_to_define' + if not employee.user_id: # We don't want non-user employee to have icon. - icon = 'presence_undetermined' + show_icon = False employee.hr_icon_display = icon + employee.show_hr_icon_display = show_icon @api.depends('address_id') def _compute_work_location_id(self): diff --git a/addons/hr/views/hr_employee_public_views.xml b/addons/hr/views/hr_employee_public_views.xml index 0d4459bdc3c..adc59f9edaf 100644 --- a/addons/hr/views/hr_employee_public_views.xml +++ b/addons/hr/views/hr_employee_public_views.xml @@ -124,6 +124,7 @@ + @@ -135,36 +136,38 @@
-
- - - -
-
- - - -
-
- - - -
- -
- - -
+ +
+ + + +
+
+ + + +
+
+ + + +
+ +
+ + +
+
diff --git a/addons/hr/views/hr_employee_views.xml b/addons/hr/views/hr_employee_views.xml index 5aa89fa0735..06fde12676d 100644 --- a/addons/hr/views/hr_employee_views.xml +++ b/addons/hr/views/hr_employee_views.xml @@ -265,6 +265,7 @@ + @@ -276,42 +277,44 @@
-
- - - -
-
- - - -
-
- - - -
-
- - - -
+ +
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
diff --git a/addons/hr_attendance/models/hr_employee.py b/addons/hr_attendance/models/hr_employee.py index b6cda81db99..fb425e7e84c 100644 --- a/addons/hr_attendance/models/hr_employee.py +++ b/addons/hr_attendance/models/hr_employee.py @@ -205,6 +205,5 @@ class HrEmployee(models.Model): def _compute_presence_icon(self): res = super()._compute_presence_icon() # All employee must chek in or check out. Everybody must have an icon - employee_to_define = self.filtered(lambda e: e.hr_icon_display == 'presence_undetermined') - employee_to_define.hr_icon_display = 'presence_to_define' + self.filtered(lambda employee: not employee.show_hr_icon_display).show_hr_icon_display = True return res diff --git a/addons/hr_holidays/models/hr_employee.py b/addons/hr_holidays/models/hr_employee.py index 30ca3b6ad18..9e37af20df4 100644 --- a/addons/hr_holidays/models/hr_employee.py +++ b/addons/hr_holidays/models/hr_employee.py @@ -121,11 +121,11 @@ class HrEmployeeBase(models.AbstractModel): def _compute_presence_icon(self): super()._compute_presence_icon() employees_absent = self.filtered(lambda employee: - employee.hr_icon_display not in ['presence_present', 'presence_absent_active'] + employee.hr_presence_state != 'present' and employee.is_absent) employees_absent.update({'hr_icon_display': 'presence_holiday_absent'}) employees_present = self.filtered(lambda employee: - employee.hr_icon_display in ['presence_present', 'presence_absent_active'] + employee.hr_presence_state == 'present' and employee.is_absent) employees_present.update({'hr_icon_display': 'presence_holiday_present'}) diff --git a/addons/hr_holidays/views/hr_views.xml b/addons/hr_holidays/views/hr_views.xml index 9c3364495ef..69f84380d2f 100644 --- a/addons/hr_holidays/views/hr_views.xml +++ b/addons/hr_holidays/views/hr_views.xml @@ -91,7 +91,8 @@ - +
@@ -121,7 +122,8 @@ - +