forked from CGM_Public/pretix_original
Fix file-type check for product image
This commit is contained in:
committed by
GitHub
parent
2ae0a16e67
commit
c49f42301c
@@ -40,7 +40,6 @@ from urllib.parse import urlencode
|
|||||||
from django import forms
|
from django import forms
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.core.exceptions import ValidationError
|
from django.core.exceptions import ValidationError
|
||||||
from django.core.files.uploadedfile import UploadedFile
|
|
||||||
from django.db.models import Max
|
from django.db.models import Max
|
||||||
from django.forms.formsets import DELETION_FIELD_NAME
|
from django.forms.formsets import DELETION_FIELD_NAME
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
@@ -63,9 +62,9 @@ from pretix.base.models import (
|
|||||||
from pretix.base.models.items import ItemAddOn, ItemBundle, ItemMetaValue
|
from pretix.base.models.items import ItemAddOn, ItemBundle, ItemMetaValue
|
||||||
from pretix.base.signals import item_copy_data
|
from pretix.base.signals import item_copy_data
|
||||||
from pretix.control.forms import (
|
from pretix.control.forms import (
|
||||||
ButtonGroupRadioSelect, ItemMultipleChoiceField,
|
ButtonGroupRadioSelect, ExtFileField, ItemMultipleChoiceField,
|
||||||
SalesChannelCheckboxSelectMultiple, SizeValidationMixin,
|
SalesChannelCheckboxSelectMultiple, SplitDateTimeField,
|
||||||
SplitDateTimeField, SplitDateTimePickerWidget,
|
SplitDateTimePickerWidget,
|
||||||
)
|
)
|
||||||
from pretix.control.forms.widgets import Select2, Select2ItemVarMulti
|
from pretix.control.forms.widgets import Select2, Select2ItemVarMulti
|
||||||
from pretix.helpers.models import modelcopy
|
from pretix.helpers.models import modelcopy
|
||||||
@@ -562,6 +561,13 @@ class TicketNullBooleanSelect(forms.NullBooleanSelect):
|
|||||||
|
|
||||||
|
|
||||||
class ItemUpdateForm(I18nModelForm):
|
class ItemUpdateForm(I18nModelForm):
|
||||||
|
picture = ExtFileField(
|
||||||
|
label=_('Product picture'),
|
||||||
|
ext_whitelist=settings.FILE_UPLOAD_EXTENSIONS_IMAGE,
|
||||||
|
max_size=settings.FILE_UPLOAD_MAX_SIZE_IMAGE,
|
||||||
|
required=False,
|
||||||
|
)
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
self.fields['tax_rule'].queryset = self.instance.event.tax_rules.all()
|
self.fields['tax_rule'].queryset = self.instance.event.tax_rules.all()
|
||||||
@@ -751,14 +757,6 @@ class ItemUpdateForm(I18nModelForm):
|
|||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
def clean_picture(self):
|
|
||||||
value = self.cleaned_data.get('picture')
|
|
||||||
if isinstance(value, UploadedFile) and value.size > settings.FILE_UPLOAD_MAX_SIZE_IMAGE:
|
|
||||||
raise forms.ValidationError(_("Please do not upload files larger than {size}!").format(
|
|
||||||
size=SizeValidationMixin._sizeof_fmt(settings.FILE_UPLOAD_MAX_SIZE_IMAGE)
|
|
||||||
))
|
|
||||||
return value
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Item
|
model = Item
|
||||||
localized_fields = '__all__'
|
localized_fields = '__all__'
|
||||||
|
|||||||
Reference in New Issue
Block a user