Files
@ 887a11f64ff8
Branch filter:
Location: symposion_app/symposion/schedule/forms.py - annotation
887a11f64ff8
1.4 KiB
text/x-python
rename readme to enable markdown rendering
6d2cc584cfae 7c102aefa3a5 6d2cc584cfae c09f887e7245 c09f887e7245 06ff53e73c8b 6d2cc584cfae 6d2cc584cfae 6d2cc584cfae 6d2cc584cfae 7c102aefa3a5 19d826ad00de 7c102aefa3a5 6f172da50ad9 19d826ad00de 19d826ad00de 19d826ad00de 19d826ad00de 19d826ad00de 19d826ad00de 19d826ad00de 19d826ad00de 19d826ad00de 19d826ad00de 19d826ad00de 19d826ad00de 19d826ad00de 7c102aefa3a5 7c102aefa3a5 19d826ad00de 19d826ad00de 19d826ad00de 19d826ad00de 19d826ad00de 19d826ad00de 19d826ad00de c09f887e7245 19d826ad00de 19d826ad00de 19d826ad00de 19d826ad00de | from django import forms
from django.db.models import Q
from markitup.widgets import MarkItUpWidget
from symposion.schedule.models import Presentation
class SlotEditForm(forms.Form):
def __init__(self, *args, **kwargs):
self.slot = kwargs.pop("slot")
super(SlotEditForm, self).__init__(*args, **kwargs)
if self.slot.kind.label in ["talk", "tutorial"]:
self.fields["presentation"] = self.build_presentation_field()
else:
self.fields["content_override"] = self.build_content_override_field()
def build_presentation_field(self):
kwargs = {}
queryset = Presentation.objects.all()
queryset = queryset.exclude(cancelled=True)
queryset = queryset.order_by("proposal_base__pk")
if self.slot.content:
queryset = queryset.filter(Q(slot=None) | Q(pk=self.slot.content.pk))
kwargs["required"] = False
kwargs["initial"] = self.slot.content
else:
queryset = queryset.filter(slot=None)
kwargs["required"] = True
kwargs["queryset"] = queryset
return forms.ModelChoiceField(**kwargs)
def build_content_override_field(self):
kwargs = {
"label": "Content",
"widget": MarkItUpWidget(),
"required": False,
"initial": self.slot.content_override,
}
return forms.CharField(**kwargs)
|