Explorar el Código

Dejo que se pueda añadir un mensaje personalizado

Celestino Rey hace 1 año
padre
commit
e53ee3a797

+ 1 - 1
nuevaapp.sh

@@ -1 +1 @@
- oc new-app http://gitea.reymota.es/creylopez/JugarAlPadelOC.git -e DEBUG="False" -e VERSION=11.0 --name='jugaralpadel'
+ oc new-app http://gitea.reymota.es/creylopez/JugarAlPadelOC.git -e DEBUG="True" -e VERSION=11.0 --name='jugaralpadel'

+ 5 - 0
src/eventos/forms.py

@@ -18,3 +18,8 @@ class ListaEsperaForm(forms.ModelForm):
     class Meta:
         model = ListaEspera
         fields = []
+
+
+class MensajeCorreoForm(forms.Form):
+    asunto = forms.CharField(label="Asunto", max_length=200, required=True, widget=forms.TextInput(attrs={'class': 'form-control'}))
+    mensaje = forms.CharField(label="Mensaje", widget=forms.Textarea(attrs={'class': 'form-control', 'rows': 4}), required=True)

+ 19 - 22
src/eventos/views.py

@@ -13,7 +13,7 @@ from rest_framework.decorators import api_view
 from .serializers import EventoSerializer, ReservaSerializer, ListaEsperaSerializer, NoticiaSerializer
 
 from .models import Evento, Reserva, ListaEspera, Noticia
-from .forms import ListaEsperaForm, EventoForm
+from .forms import ListaEsperaForm, EventoForm, MensajeCorreoForm
 
 
 @login_required
@@ -315,26 +315,23 @@ def enviar_correo_inscritos(request, evento_id):
         messages.warning(request, "No hay correos disponibles para los inscritos.")
         return redirect('detalle_evento', evento_id=evento.id)
 
-    asunto = f"Información sobre el evento: {evento.descripcion}"
-    mensaje = f"""
-    Hola,
-
-    Queremos recordarte que estás inscrito en el evento "{evento.descripcion}".
-    Fecha y hora: {evento.fecha} - {evento.hora}
-
-    Cualquier duda, contáctanos.
-
-    Saludos,
-    El equipo de eventos
-    """
-
-    send_mail(
-        asunto,
-        mensaje,
-        settings.DEFAULT_FROM_EMAIL,
-        destinatarios,
-        fail_silently=False
-    )
+    if request.method == "POST":
+        form = MensajeCorreoForm(request.POST)
+        if form.is_valid():
+            asunto = form.cleaned_data['asunto']
+            mensaje = form.cleaned_data['mensaje']
+
+            send_mail(
+                asunto,
+                mensaje,
+                settings.DEFAULT_FROM_EMAIL,
+                destinatarios,
+                fail_silently=False
+            )
+
+            messages.success(request, f"Correo enviado a {len(destinatarios)} inscritos.")
+            return redirect('detalle_evento', evento_id=evento.id)
+    else:
+        form = MensajeCorreoForm()
 
-    messages.success(request, f"Correo enviado a {len(destinatarios)} inscritos.")
     return redirect('eventos:detalle_evento', evento_id=evento.id)

+ 3 - 6
src/templates/eventos/detalle_evento.html

@@ -60,12 +60,9 @@
                 {% endif %}
 
                 {% if user.is_staff and evento.evento.publicado %}
-                    <form action="{% url 'eventos:enviar_correo_inscritos' evento.id %}" method="post">
-                        {% csrf_token %}
-                        <button type="submit" class="btn btn-danger">
-                            📧 Enviar correo a inscritos
-                        </button>
-                    </form>
+                    <a href="{% url 'eventos:enviar_correo_inscritos' evento.id %}" class="btn btn-danger">
+                        📧 Enviar correo a inscritos
+                    </a>
                 {% endif %}
             </div>
 

+ 20 - 0
src/templates/eventos/enviar_correo_inscritos.html

@@ -0,0 +1,20 @@
+{% extends "base.html" %}
+
+{% block content %}
+<div class="container">
+    <h2>Enviar correo a los inscritos en "{{ evento.titulo }}"</h2>
+    <form method="post">
+        {% csrf_token %}
+        <div class="mb-3">
+            <label for="{{ form.asunto.id_for_label }}" class="form-label">Asunto</label>
+            {{ form.asunto }}
+        </div>
+        <div class="mb-3">
+            <label for="{{ form.mensaje.id_for_label }}" class="form-label">Mensaje</label>
+            {{ form.mensaje }}
+        </div>
+        <button type="submit" class="btn btn-primary">📧 Enviar Correo</button>
+        <a href="{% url 'eventos:detalle_evento' evento.id %}" class="btn btn-secondary">Cancelar</a>
+    </form>
+</div>
+{% endblock %}