From 7ca29909e8a8242972dfae2ef2f45116a0d871b2 Mon Sep 17 00:00:00 2001 From: Alexandre Fayolle Date: Wed, 19 Apr 2017 09:40:47 +0200 Subject: [PATCH] [IMP] hr: split updating manager method Extract setting the employee's parent when changing the department manager. This allows customizing the way the managers are handled easily in extension modules. Closes #16490 --- addons/hr/models/hr.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/addons/hr/models/hr.py b/addons/hr/models/hr.py index 91ab03edf7e..3bfee2448c7 100644 --- a/addons/hr/models/hr.py +++ b/addons/hr/models/hr.py @@ -316,12 +316,16 @@ class Department(models.Model): # subscribe the manager user if manager.user_id: self.message_subscribe_users(user_ids=manager.user_id.ids) - employees = self.env['hr.employee'] - for department in self: - employees = employees | self.env['hr.employee'].search([ - ('id', '!=', manager_id), - ('department_id', '=', department.id), - ('parent_id', '=', department.manager_id.id) - ]) - employees.write({'parent_id': manager_id}) + # set the employees's parent to the new manager + self._update_employee_manager(manager_id) return super(Department, self).write(vals) + + def _update_employee_manager(self, manager_id): + employees = self.env['hr.employee'] + for department in self: + employees = employees | self.env['hr.employee'].search([ + ('id', '!=', manager_id), + ('department_id', '=', department.id), + ('parent_id', '=', department.manager_id.id) + ]) + employees.write({'parent_id': manager_id})