|
|
@@ -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})
|