From f783a1cc94c877fc339aa096e427ada9c4d415c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucas=20Lef=C3=A8vre?= Date: Fri, 20 Sep 2019 12:25:39 +0000 Subject: [PATCH] [FIX] hr_holidays: Don't reset leave manager only if manually changed When changing an employee's parent_id, the leave_manager_id should be updated to the new parent_id's user, UNLESS leave_manager_id was changed manually. i.e leave_manager_id != previous parent_id closes odoo/odoo#37190 Signed-off-by: Yannick Tivisse (yti) --- addons/hr_holidays/models/hr_employee.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/addons/hr_holidays/models/hr_employee.py b/addons/hr_holidays/models/hr_employee.py index d869c42ce36..39a2a3e704e 100644 --- a/addons/hr_holidays/models/hr_employee.py +++ b/addons/hr_holidays/models/hr_employee.py @@ -154,7 +154,10 @@ class HrEmployeeBase(models.AbstractModel): def write(self, values): if 'parent_id' in values: manager = self.env['hr.employee'].browse(values['parent_id']).user_id - values['leave_manager_id'] = values.get('leave_manager_id', manager.id) + if manager: + to_change = self.filtered(lambda e: e.leave_manager_id == e.parent_id.user_id or not e.leave_manager_id) + to_change.write({'leave_manager_id': values.get('leave_manager_id', manager.id)}) + res = super(HrEmployeeBase, self).write(values) if 'parent_id' in values or 'department_id' in values: today_date = fields.Datetime.now()