Add event meta-data

This commit is contained in:
Raphael Michel
2017-08-28 11:46:35 +02:00
parent 454ca27c54
commit 88f5af3e77
23 changed files with 470 additions and 27 deletions

View File

@@ -10,6 +10,7 @@ from pytz import common_timezones, timezone
from pretix.base.forms import I18nModelForm, PlaceholderValidator, SettingsForm
from pretix.base.models import Event, Organizer, TaxRule
from pretix.base.models.event import EventMetaValue
from pretix.base.reldate import RelativeDateField, RelativeDateTimeField
from pretix.control.forms import ExtFileField, SlugWidget
from pretix.multidomain.urlreverse import build_absolute_uri
@@ -163,6 +164,22 @@ class EventWizardCopyForm(forms.Form):
)
class EventMetaValueForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
self.property = kwargs.pop('property')
super().__init__(*args, **kwargs)
self.fields['value'].required = False
self.fields['value'].widget.attrs['placeholder'] = self.property.default
class Meta:
model = EventMetaValue
fields = ['value']
widgets = {
'value': forms.TextInput
}
class EventUpdateForm(I18nModelForm):
def clean_slug(self):
return self.instance.slug

View File

@@ -71,6 +71,14 @@ class OrganizerUpdateForm(OrganizerForm):
return instance
class EventMetaPropertyForm(forms.ModelForm):
class Meta:
fields = ['name', 'default']
widgets = {
'default': forms.TextInput()
}
class TeamForm(forms.ModelForm):
def __init__(self, *args, **kwargs):

View File

@@ -3,7 +3,7 @@ from django.utils.functional import cached_property
from i18nfield.forms import I18nInlineFormSet
from pretix.base.forms import I18nModelForm
from pretix.base.models.event import SubEvent
from pretix.base.models.event import SubEvent, SubEventMetaValue
from pretix.base.models.items import SubEventItem
@@ -99,3 +99,20 @@ class QuotaFormSet(I18nInlineFormSet):
)
self.add_fields(form, None)
return form
class SubEventMetaValueForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
self.property = kwargs.pop('property')
self.default = kwargs.pop('default', None)
super().__init__(*args, **kwargs)
self.fields['value'].required = False
self.fields['value'].widget.attrs['placeholder'] = self.default or self.property.default
class Meta:
model = SubEventMetaValue
fields = ['value']
widgets = {
'value': forms.TextInput
}