From cf32a1d202ac6f0f9c3971a7900648f9ff9fbce8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Fri, 17 Nov 2017 13:43:02 +0100 Subject: [PATCH] [FIX] hr_holidays: make action_approve really work in batch --- addons/hr_holidays/models/hr_holidays.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) 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):