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=localhost:5000
export REGISTRY=registry.reymota.es export REGISTRY=registry.reymota.es
export IMG_VERSION = 0.70.4
export IMG_VERSION = 0.70.11
export IMG_NGINX_VERSION = 2.3 export IMG_NGINX_VERSION = 2.3
# limpia todo # 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.template.loader import render_to_string
from django.utils import timezone from django.utils import timezone
import logging
from django.core.mail import send_mail from django.core.mail import send_mail
from rest_framework.response import Response from rest_framework.response import Response
@ -15,6 +17,8 @@ from .serializers import EventoSerializer, ReservaSerializer, ListaEsperaSeriali
from .models import Evento, Reserva, ListaEspera, Noticia from .models import Evento, Reserva, ListaEspera, Noticia
from .forms import ListaEsperaForm, EventoForm, MensajeCorreoForm from .forms import ListaEsperaForm, EventoForm, MensajeCorreoForm
logger = logging.getLogger(__name__)
@login_required @login_required
def reservar_evento(request, evento_id): 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.") messages.warning(request, "No hay correos disponibles para los inscritos.")
return redirect('eventos:detalle_evento', evento_id=evento.id) return redirect('eventos:detalle_evento', evento_id=evento.id)
destinatarios_str = ', '.join(destinatarios)
logger.info("destinatarios: " + destinatarios_str)
if request.method == "POST": if request.method == "POST":
form = MensajeCorreoForm(request.POST) form = MensajeCorreoForm(request.POST)
if form.is_valid(): if form.is_valid():
@ -327,13 +335,16 @@ def enviar_correo_inscritos(request, evento_id):
firma = "\n\n\nSaludos, \n\nPádel entre amigos" firma = "\n\n\nSaludos, \n\nPádel entre amigos"
mensaje = f"{mensaje_usuario}{firma}" 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.") messages.success(request, f"Correo enviado a {len(destinatarios)} inscritos.")
return redirect('eventos:detalle_evento', evento_id=evento.id) 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 from pathlib import Path
import os import os
import logging
# Build paths inside the project like this: BASE_DIR / 'subdir'. # Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent 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) # 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 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