summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ishtar_common/forms.py12
-rw-r--r--ishtar_common/forms_common.py13
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)