summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandre Fayolle <alexandre.fayolle@camptocamp.com>2017-04-19 09:40:47 +0200
committerMartin Trigaux <mart-e@users.noreply.github.com>2017-04-19 09:40:47 +0200
commit7ca29909e8a8242972dfae2ef2f45116a0d871b2 (patch)
tree3991a0c42dd80d5b60417cf7a01eda4e183df185
parent39ab200cd3d2dc13f0499850d98f12f96fdcc67c (diff)
[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
-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})