feat(settings): add genre and origin questions
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
This commit is contained in:
parent
1288737f11
commit
f04e114062
|
@ -1,5 +1,5 @@
|
||||||
from django import forms
|
from django import forms
|
||||||
from django_scopes.forms import SafeModelMultipleChoiceField
|
from django_scopes.forms import SafeModelChoiceField, SafeModelMultipleChoiceField
|
||||||
from i18nfield.forms import I18nModelForm
|
from i18nfield.forms import I18nModelForm
|
||||||
|
|
||||||
from .models import MusicrateSettings
|
from .models import MusicrateSettings
|
||||||
|
@ -13,13 +13,27 @@ class MusicrateSettingsForm(I18nModelForm):
|
||||||
self.fields.pop("submission_types")
|
self.fields.pop("submission_types")
|
||||||
else:
|
else:
|
||||||
self.fields["submission_types"].queryset = event.submission_types.all()
|
self.fields["submission_types"].queryset = event.submission_types.all()
|
||||||
|
self.fields["genre_question"].queryset = (
|
||||||
|
event.questions.exclude(pk=self.instance.origin_question.pk)
|
||||||
|
if self.instance.origin_question
|
||||||
|
else event.questions.all()
|
||||||
|
)
|
||||||
|
self.fields["origin_question"].queryset = (
|
||||||
|
event.questions.exclude(pk=self.instance.genre_question.pk)
|
||||||
|
if self.instance.genre_question
|
||||||
|
else event.questions.all()
|
||||||
|
)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = MusicrateSettings
|
model = MusicrateSettings
|
||||||
fields = ("submission_types",)
|
fields = ("submission_types", "genre_question", "origin_question")
|
||||||
widgets = {
|
widgets = {
|
||||||
"submission_types": forms.SelectMultiple(attrs={"class": "select2"}),
|
"submission_types": forms.SelectMultiple(attrs={"class": "select2"}),
|
||||||
|
"genre_question": forms.Select(attrs={"class": "select2"}),
|
||||||
|
"origin_question": forms.Select(attrs={"class": "select2"}),
|
||||||
}
|
}
|
||||||
field_classes = {
|
field_classes = {
|
||||||
"submission_types": SafeModelMultipleChoiceField,
|
"submission_types": SafeModelMultipleChoiceField,
|
||||||
|
"genre_question": SafeModelChoiceField,
|
||||||
|
"origin_question": SafeModelChoiceField,
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
# Generated by Django 4.2.8 on 2023-12-14 22:47
|
||||||
|
|
||||||
|
import django.db.models.deletion
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
dependencies = [
|
||||||
|
("submission", "0074_created_updated_everywhere"),
|
||||||
|
("pretalx_musicrate", "0001_initial"),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name="musicratesettings",
|
||||||
|
name="genre_question",
|
||||||
|
field=models.OneToOneField(
|
||||||
|
null=True,
|
||||||
|
on_delete=django.db.models.deletion.SET_NULL,
|
||||||
|
related_name="pretalx_musicrate_settings_genre",
|
||||||
|
to="submission.question",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name="musicratesettings",
|
||||||
|
name="origin_question",
|
||||||
|
field=models.OneToOneField(
|
||||||
|
null=True,
|
||||||
|
on_delete=django.db.models.deletion.SET_NULL,
|
||||||
|
related_name="pretalx_musicrate_settings_origin",
|
||||||
|
to="submission.question",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
]
|
|
@ -17,3 +17,19 @@ class MusicrateSettings(models.Model):
|
||||||
verbose_name=_("Session Types"),
|
verbose_name=_("Session Types"),
|
||||||
blank=True,
|
blank=True,
|
||||||
)
|
)
|
||||||
|
genre_question = models.OneToOneField(
|
||||||
|
to="submission.Question",
|
||||||
|
on_delete=models.SET_NULL,
|
||||||
|
related_name="pretalx_musicrate_settings_genre",
|
||||||
|
verbose_name=_("Genre Question"),
|
||||||
|
blank=True,
|
||||||
|
null=True,
|
||||||
|
)
|
||||||
|
origin_question = models.OneToOneField(
|
||||||
|
to="submission.Question",
|
||||||
|
on_delete=models.SET_NULL,
|
||||||
|
related_name="pretalx_musicrate_settings_origin",
|
||||||
|
verbose_name=_("Origin Question"),
|
||||||
|
blank=True,
|
||||||
|
null=True,
|
||||||
|
)
|
||||||
|
|
|
@ -10,6 +10,8 @@
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
{% bootstrap_form_errors form %}
|
{% bootstrap_form_errors form %}
|
||||||
{% bootstrap_field form.submission_types layout='event' %}
|
{% bootstrap_field form.submission_types layout='event' %}
|
||||||
|
{% bootstrap_field form.genre_question layout='event' %}
|
||||||
|
{% bootstrap_field form.origin_question layout='event' %}
|
||||||
{% include "orga/includes/submit_row.html" %}
|
{% include "orga/includes/submit_row.html" %}
|
||||||
</form>
|
</form>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
Loading…
Reference in New Issue