26 lines
928 B
Python
26 lines
928 B
Python
from django import forms
|
|
from django_scopes.forms import SafeModelMultipleChoiceField
|
|
from i18nfield.forms import I18nModelForm
|
|
|
|
from .models import MusicrateSettings
|
|
|
|
|
|
class MusicrateSettingsForm(I18nModelForm):
|
|
def __init__(self, *args, event=None, **kwargs):
|
|
self.instance, _ = MusicrateSettings.objects.get_or_create(event=event)
|
|
super().__init__(*args, **kwargs, instance=self.instance, locales=event.locales)
|
|
if not event.submission_types.count():
|
|
self.fields.pop("submission_types")
|
|
else:
|
|
self.fields["submission_types"].queryset = event.submission_types.all()
|
|
|
|
class Meta:
|
|
model = MusicrateSettings
|
|
fields = ("submission_types",)
|
|
widgets = {
|
|
"submission_types": forms.SelectMultiple(attrs={"class": "select2"}),
|
|
}
|
|
field_classes = {
|
|
"submission_types": SafeModelMultipleChoiceField,
|
|
}
|