forked from CGM_Public/pretix_original
Allowed settings to contain files
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import os
|
||||
from functools import partial
|
||||
from itertools import product
|
||||
|
||||
@@ -403,3 +404,21 @@ class VariationsField(forms.ModelMultipleChoiceField):
|
||||
return cleaned_value
|
||||
|
||||
choices = property(_get_choices, forms.ChoiceField._set_choices)
|
||||
|
||||
|
||||
class ExtFileField(forms.FileField):
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
ext_whitelist = kwargs.pop("ext_whitelist")
|
||||
self.ext_whitelist = [i.lower() for i in ext_whitelist]
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
def clean(self, *args, **kwargs):
|
||||
data = super().clean(*args, **kwargs)
|
||||
if data:
|
||||
filename = data.name
|
||||
ext = os.path.splitext(filename)[1]
|
||||
ext = ext.lower()
|
||||
if ext not in self.ext_whitelist:
|
||||
raise forms.ValidationError(_("Filetype not allowed!"))
|
||||
return data
|
||||
|
||||
@@ -185,7 +185,6 @@ class ProviderForm(SettingsForm):
|
||||
for k, v in self.fields.items():
|
||||
val = cleaned_data.get(k)
|
||||
if v._required and (val is None or val == ""):
|
||||
print(enabled, k, v)
|
||||
self.add_error(k, _('This field is required.'))
|
||||
|
||||
|
||||
@@ -217,5 +216,4 @@ class TicketSettingsForm(SettingsForm):
|
||||
for k, v in self.fields.items():
|
||||
val = cleaned_data.get(k)
|
||||
if v._required and (val is None or val == ""):
|
||||
print(enabled, k, v)
|
||||
self.add_error(k, _('This field is required.'))
|
||||
|
||||
Reference in New Issue
Block a user