From 825180867a993a2b9241600a09cb8a581dc8b156 Mon Sep 17 00:00:00 2001 From: tbe-odoo Date: Mon, 19 Feb 2018 10:35:20 +0100 Subject: [PATCH] [FIX] hr_holidays: Remove related on employee's department - In SaaS-16 we have added a related on the employee's department. This causes access rights issues when changing the employee's department. We do not want to rewrite all the old records, only the new ones should use the new employee's department. --- addons/hr_holidays/models/hr.py | 9 +++++++-- addons/hr_holidays/models/hr_holidays.py | 3 ++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/addons/hr_holidays/models/hr.py b/addons/hr_holidays/models/hr.py index 7767b648aa8..dbd54ab1143 100644 --- a/addons/hr_holidays/models/hr.py +++ b/addons/hr_holidays/models/hr.py @@ -218,7 +218,12 @@ class Employee(models.Model): def write(self, values): res = super(Employee, self).write(values) - if 'parent_id' in values: + if 'parent_id' in values or 'department_id' in values: holidays = self.env['hr.holidays'].search([('state', 'in', ['draft', 'confirm']), ('employee_id', 'in', self.ids)]) - holidays.write({'manager_id': values['parent_id']}) + hr_vals = {} + if values.get('parent_id') is not None: + hr_vals['manager_id'] = values['parent_id'] + if values.get('department_id') is not None: + hr_vals['department_id'] = values['department_id'] + holidays.write(hr_vals) return res diff --git a/addons/hr_holidays/models/hr_holidays.py b/addons/hr_holidays/models/hr_holidays.py index 5706317a019..4ab452fe1f3 100644 --- a/addons/hr_holidays/models/hr_holidays.py +++ b/addons/hr_holidays/models/hr_holidays.py @@ -197,7 +197,7 @@ class Holidays(models.Model): "\nChoose 'Allocation Request' if you want to increase the number of leaves available for someone") parent_id = fields.Many2one('hr.holidays', string='Parent') linked_request_ids = fields.One2many('hr.holidays', 'parent_id', string='Linked Requests') - department_id = fields.Many2one('hr.department', related='employee_id.department_id', string='Department', readonly=True, store=True) + department_id = fields.Many2one('hr.department', string='Department', readonly=True) category_id = fields.Many2one('hr.employee.category', string='Employee Tag', readonly=True, states={'draft': [('readonly', False)], 'confirm': [('readonly', False)]}, help='Category of Employee') holiday_type = fields.Selection([ @@ -216,6 +216,7 @@ class Holidays(models.Model): @api.onchange('employee_id') def _onchange_employee_id(self): self.manager_id = self.employee_id and self.employee_id.parent_id + self.department_id = self.employee_id and self.employee_id.department_id @api.multi @api.depends('number_of_days_temp', 'type')