diff options
| -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) | 
