Browse Source

Envía correos recordatorios uno a uno

politica
Celestino Rey 9 months ago
parent
commit
a81994b71a
3 changed files with 76 additions and 8 deletions
  1. +1
    -1
      JugarAlPadel/K8S/Makefile
  2. +18
    -7
      JugarAlPadel/gestion_reservas/eventos/views.py
  3. +57
    -0
      JugarAlPadel/gestion_reservas/gestion_reservas/settings.py

+ 1
- 1
JugarAlPadel/K8S/Makefile View File

@ -2,7 +2,7 @@ export ARQUITECTURA := $(shell lscpu |grep itectur | tr -d ' '| cut -f2 -d':')
#export REGISTRY=localhost:5000
export REGISTRY=registry.reymota.es
export IMG_VERSION = 0.70.4
export IMG_VERSION = 0.70.11
export IMG_NGINX_VERSION = 2.3
# limpia todo


+ 18
- 7
JugarAlPadel/gestion_reservas/eventos/views.py View File

@ -6,6 +6,8 @@ from django.conf import settings
from django.template.loader import render_to_string
from django.utils import timezone
import logging
from django.core.mail import send_mail
from rest_framework.response import Response
@ -15,6 +17,8 @@ from .serializers import EventoSerializer, ReservaSerializer, ListaEsperaSeriali
from .models import Evento, Reserva, ListaEspera, Noticia
from .forms import ListaEsperaForm, EventoForm, MensajeCorreoForm
logger = logging.getLogger(__name__)
@login_required
def reservar_evento(request, evento_id):
@ -316,6 +320,10 @@ def enviar_correo_inscritos(request, evento_id):
messages.warning(request, "No hay correos disponibles para los inscritos.")
return redirect('eventos:detalle_evento', evento_id=evento.id)
destinatarios_str = ', '.join(destinatarios)
logger.info("destinatarios: " + destinatarios_str)
if request.method == "POST":
form = MensajeCorreoForm(request.POST)
if form.is_valid():
@ -327,13 +335,16 @@ def enviar_correo_inscritos(request, evento_id):
firma = "\n\n\nSaludos, \n\nPádel entre amigos"
mensaje = f"{mensaje_usuario}{firma}"
send_mail(
asunto,
mensaje,
settings.DEFAULT_FROM_EMAIL,
destinatarios,
fail_silently=False
)
for destinatario in destinatarios:
send_mail(
asunto,
mensaje,
settings.DEFAULT_FROM_EMAIL,
destinatario.split(),
fail_silently=False
)
logger.debug('Correo enviado')
messages.success(request, f"Correo enviado a {len(destinatarios)} inscritos.")
return redirect('eventos:detalle_evento', evento_id=evento.id)


+ 57
- 0
JugarAlPadel/gestion_reservas/gestion_reservas/settings.py View File

@ -12,6 +12,8 @@ https://docs.djangoproject.com/en/5.1/ref/settings/
from pathlib import Path
import os
import logging
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
@ -175,3 +177,58 @@ ADMIN_EMAIL = ''
# El tiempo de validez del enlace para resetear la contraseña (por defecto es de 3 días)
PASSWORD_RESET_TIMEOUT = 86400 # 1 día en segundos
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': '{levelname} {asctime} {module} {message}',
'style': '{',
},
'simple': {
'format': '{levelname} {message}',
'style': '{',
},
},
'handlers': {
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'simple',
},
'file': {
'level': 'DEBUG',
'class': 'logging.FileHandler',
'filename': '/dev/null',
'formatter': 'verbose',
},
'mail_admins': {
'level': 'ERROR',
'class': 'django.utils.log.AdminEmailHandler',
},
},
'loggers': {
'django': {
'handlers': ['file'],
'level': 'DEBUG',
'propagate': True,
},
'eventos': {
'handlers': ['console', 'file'],
'level': 'DEBUG',
'propagate': False,
},
'gestion_reservas': {
'handlers': ['console', 'file'],
'level': 'DEBUG',
'propagate': False,
},
'django.request': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': False,
},
},
}

Loading…
Cancel
Save