|
|
|
@ -1,8 +1,9 @@ |
|
|
|
from django.shortcuts import render, get_object_or_404, redirect |
|
|
|
from django.contrib.auth.decorators import login_required, user_passes_test |
|
|
|
from django.contrib import messages |
|
|
|
from django.core.mail import send_mail |
|
|
|
from django.core.mail import EmailMultiAlternatives |
|
|
|
from django.conf import settings |
|
|
|
from django.template.loader import render_to_string |
|
|
|
|
|
|
|
from .models import Evento, Reserva, ListaEspera |
|
|
|
from .forms import ListaEsperaForm, EventoForm |
|
|
|
@ -15,7 +16,6 @@ def reservar_evento(request, evento_id): |
|
|
|
# Verificar si el usuario ya tiene una reserva para este evento |
|
|
|
if Reserva.objects.filter(evento=evento, usuario=request.user).exists(): |
|
|
|
messages.error(request, 'Ya tienes una reserva para este evento.') |
|
|
|
print("Ya tienes una reserva para este evento.") |
|
|
|
return redirect('eventos:lista_eventos') |
|
|
|
|
|
|
|
# Verificar si quedan plazas disponibles |
|
|
|
@ -24,21 +24,24 @@ def reservar_evento(request, evento_id): |
|
|
|
|
|
|
|
# Enviar un correo con la información del evento |
|
|
|
asunto = f'Confirmación de Reserva para {evento.nombre}' |
|
|
|
mensaje = f'Hola {request.user.nombre},\n\n' \ |
|
|
|
f'Te has inscrito correctamente en el evento "{evento.nombre}".\n' \ |
|
|
|
f'Detalles del evento:\n' \ |
|
|
|
f'Nombre: {evento.nombre}\n' \ |
|
|
|
f'Descripción: {evento.descripcion}\n' \ |
|
|
|
f'Fecha: {evento.fecha.strftime("%d/%b/%y")} a las {evento.hora.hour}\n' \ |
|
|
|
f'\n¡Gracias por inscribirte!\n\n' |
|
|
|
|
|
|
|
send_mail( |
|
|
|
asunto, |
|
|
|
mensaje, |
|
|
|
settings.DEFAULT_FROM_EMAIL, |
|
|
|
[request.user.email], |
|
|
|
fail_silently=False, |
|
|
|
) |
|
|
|
from_email = settings.DEFAULT_FROM_EMAIL |
|
|
|
to_email = request.user.email |
|
|
|
cc_email = [settings.ADMIN_EMAIL] |
|
|
|
|
|
|
|
texto = f'Hola {request.user.nombre},\n\n' \ |
|
|
|
f'Te has inscrito correctamente en el evento "{evento.nombre}".\n' \ |
|
|
|
f'Detalles del evento:\n' \ |
|
|
|
f'Nombre: {evento.nombre}\n' \ |
|
|
|
f'Descripción: {evento.descripcion}\n' \ |
|
|
|
f'Fecha: {evento.fecha.strftime("%d/%b/%y")} a las {evento.hora.hour}\n' \ |
|
|
|
f'\n¡Gracias por inscribirte!\n\n' |
|
|
|
|
|
|
|
html_content = render_to_string('emails/confirmacion_reserva.html', {'evento': evento, 'usuario': request.user}) |
|
|
|
|
|
|
|
# Enviar el correo con el administrador en copia |
|
|
|
msg = EmailMultiAlternatives(asunto, texto, from_email, [to_email], cc=cc_email) |
|
|
|
msg.attach_alternative(html_content, "text/html") |
|
|
|
msg.send() |
|
|
|
|
|
|
|
messages.success(request, |
|
|
|
f'Reserva realizada para el evento {evento.nombre}.') |
|
|
|
|