from django import forms

from symposion.schedule.models import Slot, Presentation


class SlotEditForm(forms.Form):
    
    presentation = forms.ModelChoiceField(
        queryset=Presentation.objects.filter(slot__isnull=True),
        required=True,
    )
    slot_pk = forms.CharField(
        max_length=10,
        widget=forms.HiddenInput,
        required=True,
    )
    
    def clean_slot_pk(self):
        value = self.cleaned_data["slot_pk"]
        try:
            Slot.objects.get(pk=value)
        except Slot.DoesNotExist:
            raise forms.ValidationError("Invalid slot.")
        return value