creylopez 9 месяцев назад
Родитель
Сommit
48ce0c7bdf
1 измененных файлов с 50 добавлено и 0 удалено
  1. 50 0
      parejas-viewa2.py

+ 50 - 0
parejas-viewa2.py

@@ -0,0 +1,50 @@
+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})