|
|
@@ -0,0 +1,29 @@
|
|
|
+from django import forms
|
|
|
+from django.contrib.auth import get_user_model
|
|
|
+from .models import Reserva
|
|
|
+
|
|
|
+User = get_user_model()
|
|
|
+
|
|
|
+class ReservaForm(forms.ModelForm):
|
|
|
+ acompanante = forms.ModelChoiceField(
|
|
|
+ queryset=User.objects.none(),
|
|
|
+ required=False,
|
|
|
+ label="Acompañante"
|
|
|
+ )
|
|
|
+
|
|
|
+ class Meta:
|
|
|
+ model = Reserva
|
|
|
+ fields = ['acompanante']
|
|
|
+
|
|
|
+ def __init__(self, *args, **kwargs):
|
|
|
+ evento = kwargs.pop('evento', None)
|
|
|
+ usuario = kwargs.pop('usuario', None)
|
|
|
+ super().__init__(*args, **kwargs)
|
|
|
+
|
|
|
+ # Solo permitir elegir acompañante si el evento es para parejas
|
|
|
+ if evento and evento.para_parejas:
|
|
|
+ # Todos los usuarios menos el propio
|
|
|
+ self.fields['acompanante'].queryset = User.objects.exclude(id=usuario.id)
|
|
|
+ else:
|
|
|
+ # Si no es evento de parejas, ocultamos el campo
|
|
|
+ self.fields.pop('acompanante')
|