|
|
|
@ -6,6 +6,8 @@ from django.conf import settings |
|
|
|
from django.template.loader import render_to_string |
|
|
|
from django.utils import timezone |
|
|
|
|
|
|
|
from django.core.mail import send_mail |
|
|
|
|
|
|
|
from rest_framework.response import Response |
|
|
|
from rest_framework.decorators import api_view |
|
|
|
from .serializers import EventoSerializer, ReservaSerializer, ListaEsperaSerializer, NoticiaSerializer |
|
|
|
@ -292,3 +294,47 @@ def api_detalle_noticia(request, noticia_id): |
|
|
|
return Response(serializer.data) |
|
|
|
except Noticia.DoesNotExist: |
|
|
|
return Response({'error': 'Noticia no encontrado'}, status=404) |
|
|
|
|
|
|
|
|
|
|
|
# Verifica si el usuario es administrador |
|
|
|
def es_admin(user): |
|
|
|
return user.is_staff |
|
|
|
|
|
|
|
@user_passes_test(es_admin) # Solo administradores pueden acceder |
|
|
|
def enviar_correo_inscritos(request, evento_id): |
|
|
|
evento = get_object_or_404(Evento, id=evento_id) |
|
|
|
inscritos = Reserva.objects.filter(evento=evento).select_related('usuario') |
|
|
|
|
|
|
|
if not inscritos: |
|
|
|
messages.warning(request, "No hay usuarios inscritos en este evento.") |
|
|
|
return redirect('detalle_evento', evento_id=evento.id) |
|
|
|
|
|
|
|
destinatarios = [reserva.usuario.email for reserva in inscritos if reserva.usuario.email] |
|
|
|
|
|
|
|
if not destinatarios: |
|
|
|
messages.warning(request, "No hay correos disponibles para los inscritos.") |
|
|
|
return redirect('detalle_evento', evento_id=evento.id) |
|
|
|
|
|
|
|
asunto = f"Información sobre el evento: {evento.titulo}" |
|
|
|
mensaje = f""" |
|
|
|
Hola, |
|
|
|
|
|
|
|
Queremos recordarte que estás inscrito en el evento "{evento.titulo}". |
|
|
|
Fecha y hora: {evento.fecha} - {evento.hora} |
|
|
|
|
|
|
|
Cualquier duda, contáctanos. |
|
|
|
|
|
|
|
Saludos, |
|
|
|
El equipo de eventos |
|
|
|
""" |
|
|
|
|
|
|
|
send_mail( |
|
|
|
asunto, |
|
|
|
mensaje, |
|
|
|
settings.DEFAULT_FROM_EMAIL, |
|
|
|
destinatarios, |
|
|
|
fail_silently=False |
|
|
|
) |
|
|
|
|
|
|
|
messages.success(request, f"Correo enviado a {len(destinatarios)} inscritos.") |
|
|
|
return redirect('detalle_evento', evento_id=evento.id) |