Parcourir la source

Quito ficheros intermedios

Celestino Rey il y a 9 mois
Parent
commit
8e7d3997ae
7 fichiers modifiés avec 0 ajouts et 169 suppressions
  1. 0 3
      parejas-detalle_evento.html
  2. 0 29
      parejas-forms.py
  3. 0 36
      parejas-forms2.py
  4. 0 21
      parejas-models.py
  5. 0 7
      parejas-reservar_evento.html
  6. 0 50
      parejas-viewa2.py
  7. 0 23
      parejas-views.py

+ 0 - 3
parejas-detalle_evento.html

@@ -1,3 +0,0 @@
-{% for reserva in evento.reservas.all %}
-  <p>{{ reserva.usuario.get_full_name }}{% if reserva.acompanante %} y {{ reserva.acompanante.get_full_name }}{% endif %}</p>
-{% endfor %}

+ 0 - 29
parejas-forms.py

@@ -1,29 +0,0 @@
-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')

+ 0 - 36
parejas-forms2.py

@@ -1,36 +0,0 @@
-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)
-
-        if evento and evento.para_parejas:
-            # Ordenar alfabéticamente por nombre y excluir al propio usuario
-            self.fields['acompanante'].queryset = (
-                User.objects.exclude(id=usuario.id)
-                .order_by('first_name', 'last_name', 'username')
-            )
-
-            # Mostrar el nombre completo o username en las opciones
-            self.fields['acompanante'].label_from_instance = (
-                lambda obj: f"{obj.get_full_name() or obj.username}"
-            )
-        else:
-            # Si el evento no es para parejas, quitar el campo
-            self.fields.pop('acompanante')

+ 0 - 21
parejas-models.py

@@ -1,21 +0,0 @@
-from django.conf import settings
-
-class Reserva(models.Model):
-    evento = models.ForeignKey(Evento, on_delete=models.CASCADE, related_name='reservas')
-    usuario = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='reservas')
-    acompanante = models.ForeignKey(
-        settings.AUTH_USER_MODEL,
-        on_delete=models.SET_NULL,
-        null=True,
-        blank=True,
-        related_name='reservas_como_acompanante'
-    )
-    fecha_reserva = models.DateTimeField(auto_now_add=True)
-
-    class Meta:
-        unique_together = ('evento', 'usuario')
-
-    def __str__(self):
-        if self.acompanante:
-            return f"{self.usuario} y {self.acompanante} en {self.evento}"
-        return f"{self.usuario} en {self.evento}"

+ 0 - 7
parejas-reservar_evento.html

@@ -1,7 +0,0 @@
-<h2>Reservar en {{ evento.titulo }}</h2>
-
-<form method="post">
-  {% csrf_token %}
-  {{ form.as_p }}
-  <button type="submit" class="btn btn-primary">Confirmar reserva</button>
-</form>

+ 0 - 50
parejas-viewa2.py

@@ -1,50 +0,0 @@
-from django.core.mail import send_mail
-from django.conf import settings
-
-@login_required
-def reservar_evento(request, evento_id):
-    evento = get_object_or_404(Evento, id=evento_id)
-
-    # Verificar si ya está inscrito
-    if Reserva.objects.filter(evento=evento, usuario=request.user).exists():
-        messages.warning(request, "Ya estás inscrito en este evento.")
-        return redirect('detalle_evento', evento_id=evento.id)
-
-    if request.method == 'POST':
-        form = ReservaForm(request.POST, evento=evento, usuario=request.user)
-        if form.is_valid():
-            reserva = form.save(commit=False)
-            reserva.evento = evento
-            reserva.usuario = request.user
-            reserva.save()
-
-            # --- Envío de correos ---
-            asunto = f"Confirmación de reserva: {evento.titulo}"
-            mensaje = (
-                f"Hola {request.user.get_full_name() or request.user.username},\n\n"
-                f"Tu reserva para el evento '{evento.titulo}' se ha confirmado correctamente.\n"
-                f"Fecha: {evento.fecha.strftime('%d/%m/%Y')} a las {evento.hora.strftime('%H:%M')}\n\n"
-            )
-
-            # Si tiene acompañante, incluirlo en el mensaje y enviarle también
-            destinatarios = [request.user.email]
-            if reserva.acompanante:
-                mensaje += f"Has indicado como acompañante a {reserva.acompanante.get_full_name() or reserva.acompanante.username}.\n"
-                destinatarios.append(reserva.acompanante.email)
-
-            mensaje += "\nSaludos,\nEl equipo de organización."
-
-            send_mail(
-                asunto,
-                mensaje,
-                settings.DEFAULT_FROM_EMAIL,
-                destinatarios,
-                fail_silently=False,
-            )
-
-            messages.success(request, "Reserva realizada correctamente.")
-            return redirect('detalle_evento', evento_id=evento.id)
-    else:
-        form = ReservaForm(evento=evento, usuario=request.user)
-
-    return render(request, 'eventos/reservar_evento.html', {'form': form, 'evento': evento})

+ 0 - 23
parejas-views.py

@@ -1,23 +0,0 @@
-@login_required
-def reservar_evento(request, evento_id):
-    evento = get_object_or_404(Evento, id=evento_id)
-
-    # Si ya está inscrito
-    if Reserva.objects.filter(evento=evento, usuario=request.user).exists():
-        messages.warning(request, "Ya estás inscrito en este evento.")
-        return redirect('detalle_evento', evento_id=evento.id)
-
-    if request.method == 'POST':
-        form = ReservaForm(request.POST, evento=evento, usuario=request.user)
-        if form.is_valid():
-            reserva = form.save(commit=False)
-            reserva.evento = evento
-            reserva.usuario = request.user
-            reserva.save()
-            messages.success(request, "Reserva realizada correctamente.")
-            # Aquí podrías enviar el correo al usuario
-            return redirect('detalle_evento', evento_id=evento.id)
-    else:
-        form = ReservaForm(evento=evento, usuario=request.user)
-
-    return render(request, 'eventos/reservar_evento.html', {'form': form, 'evento': evento})