Files
@ bfd2925c6015
Branch filter:
Location: symposion_app/symposion/schedule/forms.py - annotation
bfd2925c6015
1.5 KiB
text/x-python
Merge pull request #3 from pyohio/pyflakes
Pyflakes clean
Pyflakes clean
6d2cc584cfae 7c102aefa3a5 6d2cc584cfae c09f887e7245 c09f887e7245 06ff53e73c8b 6d2cc584cfae 6d2cc584cfae 6d2cc584cfae 6d2cc584cfae 7c102aefa3a5 19d826ad00de 7c102aefa3a5 c582b2b3e23e c582b2b3e23e 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)
# @@@ TODO - Make this configurable
if self.slot.kind.label in ["talk", "tutorial", "keynote"]:
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)
|