# -*- coding: utf-8 -*- from __future__ import division from __future__ import print_function from __future__ import unicode_literals from django import forms from django.utils import timezone from bda.models import Attribution, Spectacle class TokenForm(forms.Form): token = forms.CharField(widget=forms.widgets.Textarea()) class AttributionModelMultipleChoiceField(forms.ModelMultipleChoiceField): def label_from_instance(self, obj): return "%s" % obj.spectacle class ResellForm(forms.Form): attributions = AttributionModelMultipleChoiceField( label='', queryset=Attribution.objects.none(), widget=forms.CheckboxSelectMultiple, required=False) def __init__(self, participant, *args, **kwargs): super(ResellForm, self).__init__(*args, **kwargs) self.fields['attributions'].queryset = participant.attribution_set\ .filter(spectacle__date__gte=timezone.now())\ .exclude(revente__seller=participant) class AnnulForm(forms.Form): attributions = AttributionModelMultipleChoiceField( label='', queryset=Attribution.objects.none(), widget=forms.CheckboxSelectMultiple, required=False) def __init__(self, participant, *args, **kwargs): super(AnnulForm, self).__init__(*args, **kwargs) self.fields['attributions'].queryset = participant.attribution_set\ .filter(spectacle__date__gte=timezone.now(), revente__isnull=False, revente__notif_sent=False, revente__soldTo__isnull=True) class InscriptionReventeForm(forms.Form): spectacles = forms.ModelMultipleChoiceField( queryset=Spectacle.objects.none(), widget=forms.CheckboxSelectMultiple, required=False) def __init__(self, tirage, *args, **kwargs): super(InscriptionReventeForm, self).__init__(*args, **kwargs) self.fields['spectacles'].queryset = tirage.spectacle_set.filter( date__gte=timezone.now()) class SoldForm(forms.Form): attributions = AttributionModelMultipleChoiceField( label='', queryset=Attribution.objects.none(), widget=forms.CheckboxSelectMultiple) def __init__(self, participant, *args, **kwargs): super(SoldForm, self).__init__(*args, **kwargs) self.fields['attributions'].queryset = ( participant.attribution_set .filter(revente__isnull=False, revente__soldTo__isnull=False) .exclude(revente__soldTo=participant) )