diff --git a/addons/hr_homeworking/models/hr_employee.py b/addons/hr_homeworking/models/hr_employee.py index 20f444d5d39..74ec77f073d 100644 --- a/addons/hr_homeworking/models/hr_employee.py +++ b/addons/hr_homeworking/models/hr_employee.py @@ -4,7 +4,7 @@ from collections import defaultdict from datetime import timedelta from dateutil.rrule import rrule, WEEKLY -from odoo import api, fields, models +from odoo import _, api, fields, models from .hr_homeworking import DAYS @@ -43,8 +43,9 @@ class HrEmployeeBase(models.AbstractModel): def _compute_name_work_location_display(self): dayfield = self._get_current_day_location_field() + unspecified = _('Unspecified') for employee in self: - employee.name_work_location_display = employee[dayfield].name + employee.name_work_location_display = employee[dayfield].name if employee[dayfield] else unspecified @api.depends(*DAYS) def _compute_presence_icon(self): @@ -180,5 +181,5 @@ class HrEmployeeBase(models.AbstractModel): ) for employee, locations in read_group: if employee.id in employee_locations_to_remove: - locations.filtered(lambda l: l.weekday in employee_locations_to_remove[employee.id]).unlink() + locations.filtered(lambda l: l.weekday in employee_locations_to_remove[employee.id]).delete_default_worklocation() return super().write(values) diff --git a/addons/hr_homeworking/models/hr_homeworking.py b/addons/hr_homeworking/models/hr_homeworking.py index 270ccf38a81..f957b1007b5 100644 --- a/addons/hr_homeworking/models/hr_homeworking.py +++ b/addons/hr_homeworking/models/hr_homeworking.py @@ -120,7 +120,6 @@ class HrEmployeeLocation(models.Model): def add_exceptional_worklocation(self, vals): exceptional, date, work, employee_id = self._check_exceptional_work_location(vals) - exceptional.ensure_one() if exceptional: exceptional.unlink() self.env['hr.employee.location'].create({ @@ -179,6 +178,7 @@ class HrEmployeeLocation(models.Model): def delete_default_worklocation(self): self.ensure_one() + self.employee_id.with_context(no_loop=True).write({DAYS[self.weekday]: False}) self._save_previous_default_worklocation() def _get_new_worklocation_vals(self, vals):