diff --git a/addons/hr_attendance/models/hr_attendance.py b/addons/hr_attendance/models/hr_attendance.py index 4b1aa6326b6..87435cfabc8 100644 --- a/addons/hr_attendance/models/hr_attendance.py +++ b/addons/hr_attendance/models/hr_attendance.py @@ -10,7 +10,7 @@ class HrAttendance(models.Model): _order = "check_in desc" def _default_employee(self): - return self.env['hr.employee'].search([('user_id', '=', self.env.uid)], limit=1) + return self.env.user.employee_id employee_id = fields.Many2one('hr.employee', string="Employee", default=_default_employee, required=True, ondelete='cascade', index=True) department_id = fields.Many2one('hr.department', string="Department", related="employee_id.department_id", diff --git a/addons/hr_expense/models/hr_expense.py b/addons/hr_expense/models/hr_expense.py index 51888cee2b3..a84b483ae98 100644 --- a/addons/hr_expense/models/hr_expense.py +++ b/addons/hr_expense/models/hr_expense.py @@ -18,7 +18,7 @@ class HrExpense(models.Model): @api.model def _default_employee_id(self): - return self.env['hr.employee'].search([('user_id', '=', self.env.uid)], limit=1) + return self.env.user.employee_id @api.model def _default_product_uom_id(self): @@ -35,7 +35,7 @@ class HrExpense(models.Model): res = "['|', ('company_id', '=', False), ('company_id', '=', company_id)]" # Then, domain accepts everything elif self.user_has_groups('hr_expense.group_hr_expense_team_approver') and self.env.user.employee_ids: user = self.env.user - employee = user.employee_ids[0] + employee = self.env.user.employee_id res = [ '|', '|', '|', ('department_id.manager_id', '=', employee.id), @@ -44,8 +44,8 @@ class HrExpense(models.Model): ('expense_manager_id', '=', user.id), '|', ('company_id', '=', False), ('company_id', '=', employee.company_id.id), ] - elif self.env.user.employee_ids: - employee = self.env.user.employee_ids[0] + elif self.env.user.employee_id: + employee = self.env.user.employee_id res = [('id', '=', employee.id), '|', ('company_id', '=', False), ('company_id', '=', employee.company_id.id)] return res 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): diff --git a/addons/hr_holidays/report/hr_leave_report.py b/addons/hr_holidays/report/hr_leave_report.py index 80f2b189260..420b6636582 100644 --- a/addons/hr_holidays/report/hr_leave_report.py +++ b/addons/hr_holidays/report/hr_leave_report.py @@ -87,7 +87,7 @@ class LeaveReport(models.Model): if 'name' in field_names: if self.user_has_groups('hr_holidays.group_hr_holidays_user'): return - current_employee = self.env['hr.employee'].sudo().search([('user_id', '=', self.env.uid)], limit=1) + current_employee = self.env.user.employee_id for record in self: emp_id = record._cache.get('employee_id', [False])[0] if emp_id != current_employee.id: diff --git a/addons/hr_maintenance/models/equipment.py b/addons/hr_maintenance/models/equipment.py index 72d75e62c4c..791b6ad6fd6 100644 --- a/addons/hr_maintenance/models/equipment.py +++ b/addons/hr_maintenance/models/equipment.py @@ -81,7 +81,7 @@ class MaintenanceRequest(models.Model): @api.returns('self') def _default_employee_get(self): - return self.env['hr.employee'].search([('user_id', '=', self.env.uid)], limit=1) + return self.env.user.employee_id employee_id = fields.Many2one('hr.employee', string='Employee', default=_default_employee_get) owner_user_id = fields.Many2one(compute='_compute_owner', store=True) @@ -120,7 +120,7 @@ class MaintenanceRequest(models.Model): email = tools.email_split(msg.get('from')) and tools.email_split(msg.get('from'))[0] or False user = self.env['res.users'].search([('login', '=', email)], limit=1) if user: - employee = self.env['hr.employee'].search([('user_id', '=', user.id)], limit=1) + employee = self.env.user.employee_id if employee: custom_values['employee_id'] = employee and employee[0].id return super(MaintenanceRequest, self).message_new(msg, custom_values=custom_values)