From edff697393dd89beca7a37bfc5543713ba71799d Mon Sep 17 00:00:00 2001 From: Celestino Rey Date: Wed, 9 Oct 2024 10:00:11 +0000 Subject: [PATCH] =?UTF-8?q?Env=C3=ADo=20de=20correos=20html?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- JugarAlPadel/K8S/Makefile.local | 2 +- .../gestion_reservas/eventos/forms.py | 1 - .../gestion_reservas/eventos/views.py | 37 ++++++++++--------- .../gestion_reservas/settings.py | 6 +-- .../emails/confirmacion_reserva.html | 6 +++ 5 files changed, 30 insertions(+), 22 deletions(-) create mode 100644 JugarAlPadel/gestion_reservas/templates/emails/confirmacion_reserva.html diff --git a/JugarAlPadel/K8S/Makefile.local b/JugarAlPadel/K8S/Makefile.local index f2b7d8b..8fe4cb9 100644 --- a/JugarAlPadel/K8S/Makefile.local +++ b/JugarAlPadel/K8S/Makefile.local @@ -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.28 +export IMG_VERSION = 0.32 export IMG_NGINX_VERSION = 2.4 # limpia todo diff --git a/JugarAlPadel/gestion_reservas/eventos/forms.py b/JugarAlPadel/gestion_reservas/eventos/forms.py index b49ba07..3eb7e30 100644 --- a/JugarAlPadel/gestion_reservas/eventos/forms.py +++ b/JugarAlPadel/gestion_reservas/eventos/forms.py @@ -11,7 +11,6 @@ class EventoForm(forms.ModelForm): widgets = { 'fecha': forms.DateInput(attrs={'type': 'date'}), - 'hora': forms.TimeInput(attrs={'type': 'time'}), # Widget para seleccionar la hora } diff --git a/JugarAlPadel/gestion_reservas/eventos/views.py b/JugarAlPadel/gestion_reservas/eventos/views.py index 658b886..c36b53a 100644 --- a/JugarAlPadel/gestion_reservas/eventos/views.py +++ b/JugarAlPadel/gestion_reservas/eventos/views.py @@ -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}.') diff --git a/JugarAlPadel/gestion_reservas/gestion_reservas/settings.py b/JugarAlPadel/gestion_reservas/gestion_reservas/settings.py index e69b9d3..3ac45f3 100644 --- a/JugarAlPadel/gestion_reservas/gestion_reservas/settings.py +++ b/JugarAlPadel/gestion_reservas/gestion_reservas/settings.py @@ -161,10 +161,10 @@ else: EMAIL_HOST = 'smtp.gmail.com' EMAIL_PORT = 587 EMAIL_USE_TLS = True -# EMAIL_HOST_USER = 'devesaparkpadel@gmail.com' -# EMAIL_HOST_PASSWORD = 'mzgvprepqhlkuxgy' # Es mejor usar una contraseña de aplicación de Google -# DEFAULT_FROM_EMAIL = 'devesaparkpadel@gmail.com' EMAIL_HOST_USER = 'jugaralpadelentreamigos@gmail.com' EMAIL_HOST_PASSWORD = 'oxdkclbtggewxhqc' # Es mejor usar una contraseña de aplicación de Google DEFAULT_FROM_EMAIL = 'jugaralpadelentreamigos@gmail.com' + +# Dirección del administrador +ADMIN_EMAIL = 'king.bernard.b@gmail.com' diff --git a/JugarAlPadel/gestion_reservas/templates/emails/confirmacion_reserva.html b/JugarAlPadel/gestion_reservas/templates/emails/confirmacion_reserva.html new file mode 100644 index 0000000..da31a5f --- /dev/null +++ b/JugarAlPadel/gestion_reservas/templates/emails/confirmacion_reserva.html @@ -0,0 +1,6 @@ +

Confirmación de Reserva

+

Hola {{ usuario.nombre }},

+

Te has inscrito correctamente en el evento {{ evento.nombre }}.

+

Descripción: {{ evento.descripcion }}

+

Fecha: {{ evento.fecha }}

+

¡Gracias por inscribirte!