Browse Source

Envío de correos html

politica
Celestino Rey 1 year ago
parent
commit
edff697393
5 changed files with 30 additions and 22 deletions
  1. +1
    -1
      JugarAlPadel/K8S/Makefile.local
  2. +0
    -1
      JugarAlPadel/gestion_reservas/eventos/forms.py
  3. +20
    -17
      JugarAlPadel/gestion_reservas/eventos/views.py
  4. +3
    -3
      JugarAlPadel/gestion_reservas/gestion_reservas/settings.py
  5. +6
    -0
      JugarAlPadel/gestion_reservas/templates/emails/confirmacion_reserva.html

+ 1
- 1
JugarAlPadel/K8S/Makefile.local 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.28
export IMG_VERSION = 0.32
export IMG_NGINX_VERSION = 2.4 export IMG_NGINX_VERSION = 2.4
# limpia todo # limpia todo


+ 0
- 1
JugarAlPadel/gestion_reservas/eventos/forms.py View File

@ -11,7 +11,6 @@ class EventoForm(forms.ModelForm):
widgets = { widgets = {
'fecha': forms.DateInput(attrs={'type': 'date'}), 'fecha': forms.DateInput(attrs={'type': 'date'}),
'hora': forms.TimeInput(attrs={'type': 'time'}), # Widget para seleccionar la hora
} }


+ 20
- 17
JugarAlPadel/gestion_reservas/eventos/views.py View File

@ -1,8 +1,9 @@
from django.shortcuts import render, get_object_or_404, redirect from django.shortcuts import render, get_object_or_404, redirect
from django.contrib.auth.decorators import login_required, user_passes_test from django.contrib.auth.decorators import login_required, user_passes_test
from django.contrib import messages 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.conf import settings
from django.template.loader import render_to_string
from .models import Evento, Reserva, ListaEspera from .models import Evento, Reserva, ListaEspera
from .forms import ListaEsperaForm, EventoForm 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 # Verificar si el usuario ya tiene una reserva para este evento
if Reserva.objects.filter(evento=evento, usuario=request.user).exists(): if Reserva.objects.filter(evento=evento, usuario=request.user).exists():
messages.error(request, 'Ya tienes una reserva para este evento.') messages.error(request, 'Ya tienes una reserva para este evento.')
print("Ya tienes una reserva para este evento.")
return redirect('eventos:lista_eventos') return redirect('eventos:lista_eventos')
# Verificar si quedan plazas disponibles # Verificar si quedan plazas disponibles
@ -24,21 +24,24 @@ def reservar_evento(request, evento_id):
# Enviar un correo con la información del evento # Enviar un correo con la información del evento
asunto = f'Confirmación de Reserva para {evento.nombre}' 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, messages.success(request,
f'Reserva realizada para el evento {evento.nombre}.') f'Reserva realizada para el evento {evento.nombre}.')


+ 3
- 3
JugarAlPadel/gestion_reservas/gestion_reservas/settings.py View File

@ -161,10 +161,10 @@ else:
EMAIL_HOST = 'smtp.gmail.com' EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587 EMAIL_PORT = 587
EMAIL_USE_TLS = True 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_USER = 'jugaralpadelentreamigos@gmail.com'
EMAIL_HOST_PASSWORD = 'oxdkclbtggewxhqc' # Es mejor usar una contraseña de aplicación de Google EMAIL_HOST_PASSWORD = 'oxdkclbtggewxhqc' # Es mejor usar una contraseña de aplicación de Google
DEFAULT_FROM_EMAIL = 'jugaralpadelentreamigos@gmail.com' DEFAULT_FROM_EMAIL = 'jugaralpadelentreamigos@gmail.com'
# Dirección del administrador
ADMIN_EMAIL = 'king.bernard.b@gmail.com'

+ 6
- 0
JugarAlPadel/gestion_reservas/templates/emails/confirmacion_reserva.html View File

@ -0,0 +1,6 @@
<h1>Confirmación de Reserva</h1>
<p>Hola {{ usuario.nombre }},</p>
<p>Te has inscrito correctamente en el evento <strong>{{ evento.nombre }}</strong>.</p>
<p><strong>Descripción:</strong> {{ evento.descripcion }}</p>
<p><strong>Fecha:</strong> {{ evento.fecha }}</p>
<p>¡Gracias por inscribirte!</p>

Loading…
Cancel
Save