diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-01-16 20:49:52 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-01-16 20:49:52 +0100 |
commit | 275c16034b096f602b46d5945e98bbada0f347b9 (patch) | |
tree | d6d6c57f2aabfbadddc7d7c8c3e14a17d82ebf13 | |
parent | 4ff6892b875b2794f68bc98a610347b27647472a (diff) | |
download | Ishtar-275c16034b096f602b46d5945e98bbada0f347b9.tar.bz2 Ishtar-275c16034b096f602b46d5945e98bbada0f347b9.zip |
File size validator
-rw-r--r-- | ishtar_common/forms.py | 12 | ||||
-rw-r--r-- | ishtar_common/forms_common.py | 13 |
2 files changed, 22 insertions, 3 deletions
diff --git a/ishtar_common/forms.py b/ishtar_common/forms.py index 526255277..7b98021d6 100644 --- a/ishtar_common/forms.py +++ b/ishtar_common/forms.py @@ -26,8 +26,10 @@ import re import types from django import forms +from django.conf import settings from django.contrib.auth.models import User from django.contrib.contenttypes.models import ContentType +from django.core.exceptions import ValidationError from django.core.urlresolvers import reverse from django.core import validators from django.forms.formsets import BaseFormSet, DELETION_FIELD_NAME @@ -81,6 +83,16 @@ name_validator = validators.RegexValidator( 'invalid') +def file_size_validator(value): + limit = (settings.MAX_UPLOAD_SIZE * 1024 * 1024) - 100 + if value.size > limit: + raise ValidationError( + unicode(_(u'File too large. Size should not exceed {} Mo.')).format( + settings.MAX_UPLOAD_SIZE + ) + ) + + class FloatField(forms.FloatField): """ Allow the use of comma for separating float fields diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py index 47a282ab7..6e6cd553e 100644 --- a/ishtar_common/forms_common.py +++ b/ishtar_common/forms_common.py @@ -43,7 +43,8 @@ from bootstrap_datepicker.widgets import DatePicker from ishtar_common.templatetags.link_to_window import simple_link_to_window from forms import FinalForm, FormSet, reverse_lazy, name_validator, \ TableSelect, ManageOldType, CustomForm, FieldType, FormHeader, \ - FormSetWithDeleteSwitches, IshtarForm, get_data_from_formset + FormSetWithDeleteSwitches, IshtarForm, get_data_from_formset, \ + file_size_validator from ishtar_common.utils import is_downloadable, clean_session_cache, \ max_size_help @@ -148,6 +149,8 @@ class NewImportForm(forms.ModelForm): available=True ) ] + self.fields['imported_file'].validators = [file_size_validator] + self.fields['imported_images'].validators = [file_size_validator] def clean(self): data = self.cleaned_data @@ -1108,10 +1111,14 @@ class DocumentForm(forms.ModelForm, CustomForm, ManageOldType): label=_(u"Numerical ressource (web address)")) image = forms.ImageField( label=_(u"Image"), help_text=mark_safe(get_image_help()), - max_length=255, required=False, widget=widgets.ImageFileInput()) + max_length=255, required=False, widget=widgets.ImageFileInput(), + validators=[file_size_validator] + ) associated_file = forms.FileField( label=pgettext(u"Not directory", u"File"), max_length=255, - required=False, help_text=max_size_help()) + required=False, help_text=max_size_help(), + validators=[file_size_validator] + ) reference = forms.CharField( label=_(u"Reference"), validators=[validators.MaxLengthValidator(100)], required=False) |