From a0e247f05059f46d226079266de38f2fc39cf53e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Mon, 11 Apr 2022 23:24:21 +0200 Subject: [PATCH] Add validate_fields to ModelStorage issue11303 review386191002 --- line.py | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/line.py b/line.py index ebcdf00700..470ecda72b 100644 --- a/line.py +++ b/line.py @@ -125,16 +125,19 @@ class Line(ModelSQL, ModelView): return Transaction().context.get('date') or Date_.today() @classmethod - def validate(cls, lines): - super(Line, cls).validate(lines) - for line in lines: - line.check_duration() + def validate_fields(cls, lines, field_names): + super().validate_fields(lines, field_names) + cls.check_duration(lines, field_names) - def check_duration(self): - if self.duration < datetime.timedelta(): - raise DurationValidationError( - gettext('timesheet.msg_line_duration_positive', - line=self.rec_name)) + @classmethod + def check_duration(cls, lines, field_names=None): + if field_names and 'duration' not in field_names: + return + for line in lines: + if line.duration < datetime.timedelta(): + raise DurationValidationError( + gettext('timesheet.msg_line_duration_positive', + line=line.rec_name)) @classmethod def copy(cls, lines, default=None):