diff --git a/symposion/schedule/forms.py b/symposion/schedule/forms.py index 6b4bf100b12dc5d197c1d061fb3e62bc3b7d82e7..c94da7164b880c465cbd3ea196603cc0cbedb7a3 100644 --- a/symposion/schedule/forms.py +++ b/symposion/schedule/forms.py @@ -6,17 +6,18 @@ from symposion.schedule.models import Presentation class SlotEditForm(forms.Form): - presentation = forms.ModelChoiceField( - queryset=Presentation.objects.all(), - required=True, - ) + presentation = forms.ModelChoiceField(queryset=Presentation.objects.all()) def __init__(self, *args, **kwargs): - presentation = kwargs.get("initial", {}).get("presentation") + content = kwargs.pop("content", None) + if content: + kwargs.setdefault("initial", {})["presentation"] = content super(SlotEditForm, self).__init__(*args, **kwargs) queryset = self.fields["presentation"].queryset - if presentation: - queryset = queryset.filter(Q(slot=None) | Q(pk=presentation.pk)) + if content: + queryset = queryset.filter(Q(slot=None) | Q(pk=content.pk)) + self.fields["presentation"].required = False else: queryset = queryset.filter(slot=None) + self.fields["presentation"].required = True self.fields["presentation"].queryset = queryset