diff --git a/addons/hr_holidays/models/hr_holidays.py b/addons/hr_holidays/models/hr_holidays.py index 66f95b60946..3b6129c1371 100644 --- a/addons/hr_holidays/models/hr_holidays.py +++ b/addons/hr_holidays/models/hr_holidays.py @@ -434,14 +434,12 @@ class Holidays(models.Model): self._check_security_action_approve() current_employee = self.env['hr.employee'].search([('user_id', '=', self.env.uid)], limit=1) - for holiday in self: - if holiday.state != 'confirm': - raise UserError(_('Leave request must be confirmed ("To Approve") in order to approve it.')) + if any(holiday.state != 'confirm' for holiday in self): + raise UserError(_('Leave request must be confirmed ("To Approve") in order to approve it.')) - if holiday.double_validation: - return holiday.write({'state': 'validate1', 'first_approver_id': current_employee.id}) - else: - holiday.action_validate() + self.filtered(lambda hol: hol.double_validation).write({'state': 'validate1', 'first_approver_id': current_employee.id}) + self.filtered(lambda hol: not hol.double_validation).action_validate() + return True @api.multi def _prepare_create_by_category(self, employee):