summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--addons/hr/models/hr.py20
1 files 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})