diff options
| author | Alexandre Fayolle <alexandre.fayolle@camptocamp.com> | 2017-04-19 09:40:47 +0200 |
|---|---|---|
| committer | Martin Trigaux <mart-e@users.noreply.github.com> | 2017-04-19 09:40:47 +0200 |
| commit | 7ca29909e8a8242972dfae2ef2f45116a0d871b2 (patch) | |
| tree | 3991a0c42dd80d5b60417cf7a01eda4e183df185 /addons | |
| parent | 39ab200cd3d2dc13f0499850d98f12f96fdcc67c (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
Diffstat (limited to 'addons')
| -rw-r--r-- | addons/hr/models/hr.py | 20 |
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}) |
