diff options
| author | Yannick Tivisse <yti@odoo.com> | 2020-05-13 13:22:25 +0000 |
|---|---|---|
| committer | Yannick Tivisse <yti@odoo.com> | 2020-05-15 07:06:59 +0000 |
| commit | 152097d099a17dbfbfc3e37cd4cf3bf035fae9a4 (patch) | |
| tree | b66fbe8ed92361cc354a9df917d29af37d4773b7 /addons/hr_holidays/models | |
| parent | b6537c4335356ed660d2acbd914783d4ceea2521 (diff) | |
[IMP] hr*: Use correct default employee_id based on company
Followup of https://github.com/odoo/odoo/pull/50982/commits
Courtesy of https://github.com/sswapnesh
In a multi-company environment `self.env['hr.employee'].search([('user_id', '=', self.env.uid)], limit=1)` could be wrong while `employee_id`represents correct employee based on company.
https://github.com/odoo/odoo/blob/fb17af76d791488c69eb3829376940b32998d374/addons/hr/models/res_users.py#L13
Making behavior Similar to https://github.com/odoo/odoo/blob/fb17af76d791488c69eb3829376940b32998d374/addons/hr_expense/models/hr_expense.py#L663
closes odoo/odoo#51246
Taskid: 2254687
X-original-commit: d7d1557e7a0f613335a9ca5ca1355d246093f9d1
Related: odoo/enterprise#10599
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Diffstat (limited to 'addons/hr_holidays/models')
| -rw-r--r-- | addons/hr_holidays/models/hr_leave.py | 10 | ||||
| -rw-r--r-- | addons/hr_holidays/models/hr_leave_allocation.py | 8 | ||||
| -rw-r--r-- | addons/hr_holidays/models/hr_leave_type.py | 2 |
3 files changed, 10 insertions, 10 deletions
diff --git a/addons/hr_holidays/models/hr_leave.py b/addons/hr_holidays/models/hr_leave.py index 8f28767c252..d8e20b808a7 100644 --- a/addons/hr_holidays/models/hr_leave.py +++ b/addons/hr_holidays/models/hr_leave.py @@ -890,7 +890,7 @@ class HolidaysRequest(models.Model): if any(holiday.state != 'confirm' for holiday in self): raise UserError(_('Time off request must be confirmed ("To Approve") in order to approve it.')) - current_employee = self.env['hr.employee'].search([('user_id', '=', self.env.uid)], limit=1) + current_employee = self.env.user.employee_id self.filtered(lambda hol: hol.validation_type == 'both').write({'state': 'validate1', 'first_approver_id': current_employee.id}) @@ -906,7 +906,7 @@ class HolidaysRequest(models.Model): return True def action_validate(self): - current_employee = self.env['hr.employee'].search([('user_id', '=', self.env.uid)], limit=1) + current_employee = self.env.user.employee_id if any(holiday.state not in ['confirm', 'validate1'] and holiday.validation_type != 'no_validation' for holiday in self): raise UserError(_('Time off request must be confirmed in order to approve it.')) @@ -1014,7 +1014,7 @@ class HolidaysRequest(models.Model): return True def action_refuse(self): - current_employee = self.env['hr.employee'].search([('user_id', '=', self.env.uid)], limit=1) + current_employee = self.env.user.employee_id if any(holiday.state not in ['draft', 'confirm', 'validate', 'validate1'] for holiday in self): raise UserError(_('Time off request must be confirmed or validated in order to refuse it.')) @@ -1044,7 +1044,7 @@ class HolidaysRequest(models.Model): if self.env.is_superuser(): return - current_employee = self.env['hr.employee'].search([('user_id', '=', self.env.uid)], limit=1) + current_employee = self.env.user.employee_id is_officer = self.env.user.has_group('hr_holidays.group_hr_holidays_user') is_manager = self.env.user.has_group('hr_holidays.group_hr_holidays_manager') @@ -1168,7 +1168,7 @@ class HolidaysRequest(models.Model): def get_unusual_days(self, date_from, date_to=None): # Checking the calendar directly allows to not grey out the leaves taken # by the employee - calendar = self.env['hr.employee'].search([('user_id', '=', self.env.uid)], limit=1).resource_calendar_id + calendar = self.env.user.employee_id.resource_calendar_id if not calendar: return {} dfrom = datetime.combine(fields.Date.from_string(date_from), time.min).replace(tzinfo=UTC) diff --git a/addons/hr_holidays/models/hr_leave_allocation.py b/addons/hr_holidays/models/hr_leave_allocation.py index b6ae1f720bf..6fda4311739 100644 --- a/addons/hr_holidays/models/hr_leave_allocation.py +++ b/addons/hr_holidays/models/hr_leave_allocation.py @@ -495,14 +495,14 @@ class HolidaysAllocation(models.Model): if any(holiday.state != 'confirm' for holiday in self): raise UserError(_('Allocation request must be confirmed ("To Approve") in order to approve it.')) - current_employee = self.env['hr.employee'].search([('user_id', '=', self.env.uid)], limit=1) + current_employee = self.env.user.employee_id self.filtered(lambda hol: hol.validation_type == 'both').write({'state': 'validate1', 'first_approver_id': current_employee.id}) self.filtered(lambda hol: not hol.validation_type == 'both').action_validate() self.activity_update() def action_validate(self): - current_employee = self.env['hr.employee'].search([('user_id', '=', self.env.uid)], limit=1) + current_employee = self.env.user.employee_id for holiday in self: if holiday.state not in ['confirm', 'validate1']: raise UserError(_('Allocation request must be confirmed in order to approve it.')) @@ -539,7 +539,7 @@ class HolidaysAllocation(models.Model): return childs def action_refuse(self): - current_employee = self.env['hr.employee'].search([('user_id', '=', self.env.uid)], limit=1) + current_employee = self.env.user.employee_id if any(holiday.state not in ['confirm', 'validate', 'validate1'] for holiday in self): raise UserError(_('Allocation request must be confirmed or validated in order to refuse it.')) @@ -557,7 +557,7 @@ class HolidaysAllocation(models.Model): """ Check if target state is achievable. """ if self.env.is_superuser(): return - current_employee = self.env['hr.employee'].search([('user_id', '=', self.env.uid)], limit=1) + current_employee = self.env.user.employee_id if not current_employee: return is_officer = self.env.user.has_group('hr_holidays.group_hr_holidays_user') diff --git a/addons/hr_holidays/models/hr_leave_type.py b/addons/hr_holidays/models/hr_leave_type.py index 8d8a08c64db..ec57acd1022 100644 --- a/addons/hr_holidays/models/hr_leave_type.py +++ b/addons/hr_holidays/models/hr_leave_type.py @@ -257,7 +257,7 @@ class HolidaysType(models.Model): elif 'default_employee_id' in self._context: employee_id = self._context['default_employee_id'] else: - employee_id = self.env['hr.employee'].search([('user_id', '=', self.env.user.id), ('company_id', '=', self.env.company.id)], limit=1).id + employee_id = self.env.user.employee_id.id return employee_id def _compute_leaves(self): |
