From 84e51699710888183ff2e771ef10c1eae654be93 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Wed, 26 Jun 2019 16:14:51 +0200 Subject: Max 32 bits integer check by default on forms --- ishtar_common/forms.py | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) (limited to 'ishtar_common/forms.py') diff --git a/ishtar_common/forms.py b/ishtar_common/forms.py index f992ace38..6cfef1595 100644 --- a/ishtar_common/forms.py +++ b/ishtar_common/forms.py @@ -137,18 +137,27 @@ JSON_VALUE_TYPES_FIELDS = { class BSForm(object): def _post_init(self): for k in self.fields: + widget = self.fields[k].widget # manage bs decoration - if not hasattr(self.fields[k].widget, 'NO_FORM_CONTROL'): + if not hasattr(widget, 'NO_FORM_CONTROL'): cls = 'form-control' - if 'class' in self.fields[k].widget.attrs: - if 'form-control' in self.fields[k].widget.attrs['class']: - cls = self.fields[k].widget.attrs['class'] + if 'class' in widget.attrs: + if 'form-control' in widget.attrs['class']: + cls = widget.attrs['class'] else: - cls = self.fields[k].widget.attrs['class'] + " " + cls - self.fields[k].widget.attrs['class'] = cls - + cls = widget.attrs['class'] + " " + cls + widget.attrs['class'] = cls + # 32 bits max value + if isinstance(self.fields[k], forms.IntegerField): + has_max = False + for validator in self.fields[k].validators: + if isinstance(validator, validators.MaxValueValidator): + has_max = True + break + if not has_max: + self.fields[k].validators.append( + validators.MaxValueValidator(2147483647)) # manage datepicker - widget = self.fields[k].widget if not isinstance(widget, DatePicker): continue lang = translation.get_language() -- cgit v1.2.3