forked from CGM_Public/pretix_original
Add Question.valid_file_portrait as well as crop editor for images
This commit is contained in:
@@ -178,8 +178,7 @@ class CachedFileInput(forms.ClearableFileInput):
|
||||
return ctx
|
||||
|
||||
|
||||
class SizeFileField(forms.FileField):
|
||||
|
||||
class SizeValidationMixin:
|
||||
def __init__(self, *args, **kwargs):
|
||||
self.max_size = kwargs.pop("max_size", None)
|
||||
super().__init__(*args, **kwargs)
|
||||
@@ -196,13 +195,12 @@ class SizeFileField(forms.FileField):
|
||||
data = super().clean(*args, **kwargs)
|
||||
if isinstance(data, UploadedFile) and self.max_size and data.size > self.max_size:
|
||||
raise forms.ValidationError(_("Please do not upload files larger than {size}!").format(
|
||||
size=SizeFileField._sizeof_fmt(self.max_size)
|
||||
size=SizeValidationMixin._sizeof_fmt(self.max_size)
|
||||
))
|
||||
return data
|
||||
|
||||
|
||||
class ExtFileField(SizeFileField):
|
||||
widget = ClearableBasenameFileInput
|
||||
class ExtValidationMixin:
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
ext_whitelist = kwargs.pop("ext_whitelist")
|
||||
@@ -220,6 +218,14 @@ class ExtFileField(SizeFileField):
|
||||
return data
|
||||
|
||||
|
||||
class SizeFileField(SizeValidationMixin, forms.FileField):
|
||||
pass
|
||||
|
||||
|
||||
class ExtFileField(ExtValidationMixin, SizeFileField):
|
||||
widget = ClearableBasenameFileInput
|
||||
|
||||
|
||||
class CachedFileField(ExtFileField):
|
||||
widget = CachedFileInput
|
||||
|
||||
|
||||
@@ -153,6 +153,7 @@ class QuestionForm(I18nModelForm):
|
||||
'valid_datetime_max',
|
||||
'valid_date_min',
|
||||
'valid_date_max',
|
||||
'valid_file_portrait',
|
||||
]
|
||||
widgets = {
|
||||
'valid_datetime_min': SplitDateTimePickerWidget(),
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
<script type="text/javascript" src="{% static "charts/raphael-min.js" %}"></script>
|
||||
<script type="text/javascript" src="{% static "charts/morris.js" %}"></script>
|
||||
<script type="text/javascript" src="{% static "clipboard/clipboard.js" %}"></script>
|
||||
<script type="text/javascript" src="{% static "cropper/cropper.js" %}"></script>
|
||||
<script type="text/javascript" src="{% static "rrule/rrule.js" %}"></script>
|
||||
<script type="text/javascript" src="{% static "pretixpresale/js/ui/questions.js" %}"></script>
|
||||
<script type="text/javascript" src="{% static "pretixcontrol/js/jquery.qrcode.min.js" %}"></script>
|
||||
|
||||
@@ -44,6 +44,9 @@
|
||||
{% bootstrap_field form.valid_datetime_min layout="control" %}
|
||||
{% bootstrap_field form.valid_datetime_max layout="control" %}
|
||||
</div>
|
||||
<div id="valid-file">
|
||||
{% bootstrap_field form.valid_file_portrait layout="control" %}
|
||||
</div>
|
||||
<div id="answer-options">
|
||||
<h3>{% trans "Answer options" %}</h3>
|
||||
<noscript>
|
||||
|
||||
Reference in New Issue
Block a user