|
|
@@ -525,75 +525,6 @@ def api_detalle_noticia(request, noticia_id):
|
|
|
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('eventos: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('eventos:detalle_evento', evento_id=evento.id)
|
|
|
-
|
|
|
- if request.method == "POST":
|
|
|
- form = MensajeCorreoForm(request.POST)
|
|
|
- if form.is_valid():
|
|
|
- asunto_usuario = form.cleaned_data['asunto']
|
|
|
- mensaje_usuario = form.cleaned_data['mensaje']
|
|
|
-
|
|
|
- asunto = f"{asunto_usuario} - {evento.nombre}"
|
|
|
-
|
|
|
- firma = "\n\n\nSaludos, \n\nPádel entre amigos"
|
|
|
- mensaje = f"{mensaje_usuario}{firma}"
|
|
|
-
|
|
|
- mensajes = [
|
|
|
- (asunto, mensaje, settings.DEFAULT_FROM_EMAIL, [email]) for email in destinatarios
|
|
|
- ]
|
|
|
-
|
|
|
- try:
|
|
|
- send_mass_mail(mensajes, fail_silently=False)
|
|
|
- except BadHeaderError:
|
|
|
- return HttpResponse('Encabezado inválido encontrado.')
|
|
|
- except SMTPException as e:
|
|
|
- return HttpResponse(f'Error de SMTP: {e}')
|
|
|
- except Exception as e:
|
|
|
- return HttpResponse(f'Ocurrió un error: {e}')
|
|
|
-
|
|
|
- logger.debug('Correo enviado')
|
|
|
-
|
|
|
- messages.success(request, f"Correo enviado a {len(destinatarios)} inscritos.")
|
|
|
- return redirect('eventos:detalle_evento', evento_id=evento.id)
|
|
|
- else:
|
|
|
- # Crear texto por defecto con los datos del evento
|
|
|
- asunto_defecto = f"Información sobre {evento.nombre}"
|
|
|
- mensaje_defecto = f"""Hola a todos,
|
|
|
-
|
|
|
-Os escribimos para daros información sobre el evento:
|
|
|
-
|
|
|
-Evento: {evento.nombre}
|
|
|
-Fecha: {evento.fecha.strftime('%d/%m/%Y')} a las {evento.hora}
|
|
|
-Precio: {evento.precio} € por persona
|
|
|
-
|
|
|
-Descripción: {evento.descripcion}"""
|
|
|
-
|
|
|
- if evento.lugar:
|
|
|
- mensaje_defecto += f"\nLugar: {evento.lugar.nombre} ({evento.lugar.url_ubicacion})"
|
|
|
-
|
|
|
- mensaje_defecto += "\n\n\nAquí vuestro mensaje:"
|
|
|
-
|
|
|
- form = MensajeCorreoForm(initial={
|
|
|
- 'asunto': asunto_defecto,
|
|
|
- 'mensaje': mensaje_defecto
|
|
|
- })
|
|
|
-
|
|
|
- return render(request, 'eventos/enviar_correo_inscritos.html', {'form': form, 'evento': evento})
|
|
|
-
|
|
|
@user_passes_test(es_admin) # Solo administradores pueden acceder
|
|
|
def enviar_correo_inscritos_html(request, evento_id):
|
|
|
"""
|
|
|
@@ -645,7 +576,27 @@ def enviar_correo_inscritos_html(request, evento_id):
|
|
|
return redirect('eventos:detalle_evento', evento_id=evento.id)
|
|
|
|
|
|
else:
|
|
|
- form = MensajeCorreoForm()
|
|
|
+ # Crear texto por defecto con los datos del evento
|
|
|
+ asunto_defecto = f"Información sobre {evento.nombre}"
|
|
|
+ mensaje_defecto = f"""Hola a todos,
|
|
|
+
|
|
|
+Os escribimos para daros información sobre el evento:
|
|
|
+
|
|
|
+Evento: {evento.nombre}
|
|
|
+Fecha: {evento.fecha.strftime('%d/%m/%Y')} a las {evento.hora}
|
|
|
+Precio: {evento.precio} € por persona
|
|
|
+
|
|
|
+Descripción: {evento.descripcion}"""
|
|
|
+
|
|
|
+ if evento.lugar:
|
|
|
+ mensaje_defecto += f"\nLugar: {evento.lugar.nombre} ({evento.lugar.url_ubicacion})"
|
|
|
+
|
|
|
+ mensaje_defecto += "\n\n\nAquí vuestro mensaje:"
|
|
|
+
|
|
|
+ form = MensajeCorreoForm(initial={
|
|
|
+ 'asunto': asunto_defecto,
|
|
|
+ 'mensaje': mensaje_defecto
|
|
|
+ })
|
|
|
|
|
|
return render(request, 'eventos/enviar_correo_inscritos.html', {'form': form, 'evento': evento})
|
|
|
|