From 3af4e24721dd9d4b7b89f718530c01df899ddc4f Mon Sep 17 00:00:00 2001 From: Yannick Tivisse Date: Thu, 14 Feb 2019 05:19:57 +0000 Subject: [PATCH] [FIX] hr_payroll: Replace constraints methods by sql constraints It's a one-liner instead of 6 lines of Python with extra ORM overhead --- addons/hr_payroll/models/hr_benefit.py | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/addons/hr_payroll/models/hr_benefit.py b/addons/hr_payroll/models/hr_benefit.py index 42d311d8f0b..a46a4d65bcb 100644 --- a/addons/hr_payroll/models/hr_benefit.py +++ b/addons/hr_payroll/models/hr_benefit.py @@ -35,23 +35,10 @@ class HrBenefit(models.Model): _sql_constraints = [ ('_unique', 'unique (employee_id, date_start, date_stop, benefit_type_id)', "Benefit already exists for this attendence"), + ('_benefit_has_end', 'check (date_stop IS NOT NULL OR duration <> 0)', 'Benefit must end. Please define an end date or a duration.'), + ('_benefit_start_before_end', 'check (date_stop is null OR (date_stop > date_start))', 'Starting time should be before end time.') ] - @api.constrains('date_stop', 'duration') - def _check_validity_benefit_ends(self): - """ verifies if benefit has an end. """ - for benefit in self: - if not (benefit.date_stop or benefit.duration): - raise exceptions.ValidationError(_('Benefit must end. Please define an end date or a duration.')) - - @api.constrains('date_start', 'date_stop') - def _check_validity_start_before_end(self): - """ verifies if benefit has an end. """ - for benefit in self: - if benefit.date_stop < benefit.date_start: - raise exceptions.ValidationError(_('Starting time should be before end time.')) - - @api.onchange('duration') def _onchange_duration(self): self._inverse_duration()