From 6d6a2164cb052d0caf43ac6f261d96cf406fd734 Mon Sep 17 00:00:00 2001 From: Celestino Rey Date: Thu, 14 Nov 2024 08:51:57 +0000 Subject: [PATCH] Tabla para contener la ayuda y renderizado en templates --- .../gestion_reservas/admin.py | 10 +++ .../gestion_reservas/models.py | 18 +++++ .../gestion_reservas/settings.py | 1 + .../gestion_reservas/gestion_reservas/urls.py | 1 + .../gestion_reservas/views.py | 13 ++++ .../gestion_reservas/templates/ayuda.html | 73 +++++++++++++++++++ .../gestion_reservas/templates/base.html | 2 +- JugarAlPadel/requirements.txt | 1 + 8 files changed, 118 insertions(+), 1 deletion(-) create mode 100644 JugarAlPadel/gestion_reservas/gestion_reservas/admin.py create mode 100644 JugarAlPadel/gestion_reservas/gestion_reservas/models.py create mode 100644 JugarAlPadel/gestion_reservas/templates/ayuda.html diff --git a/JugarAlPadel/gestion_reservas/gestion_reservas/admin.py b/JugarAlPadel/gestion_reservas/gestion_reservas/admin.py new file mode 100644 index 0000000..4db22c7 --- /dev/null +++ b/JugarAlPadel/gestion_reservas/gestion_reservas/admin.py @@ -0,0 +1,10 @@ +from django.contrib import admin +from .models import Ayuda + + +class AyudaAdmin(admin.ModelAdmin): + list_display = ['titulo', 'descripcion', 'apartado'] + + +admin.site.register(Ayuda, AyudaAdmin) + diff --git a/JugarAlPadel/gestion_reservas/gestion_reservas/models.py b/JugarAlPadel/gestion_reservas/gestion_reservas/models.py new file mode 100644 index 0000000..8d7ae24 --- /dev/null +++ b/JugarAlPadel/gestion_reservas/gestion_reservas/models.py @@ -0,0 +1,18 @@ +from django.db import models + + +class Ayuda(models.Model): + + APARTADOS =[ + ('ORG', 'Organización'), + ('RES', 'Reserva y cancelación'), + ('POZ', 'Los partidos'), + ] + + titulo = models.CharField(max_length=100) + apartado = models.CharField(max_length=30, choices=APARTADOS, default='ORG') + descripcion = models.TextField() + + def __str__(self): + return f"{self.titulo} - {self.apartado}" + diff --git a/JugarAlPadel/gestion_reservas/gestion_reservas/settings.py b/JugarAlPadel/gestion_reservas/gestion_reservas/settings.py index 23df629..85c5668 100644 --- a/JugarAlPadel/gestion_reservas/gestion_reservas/settings.py +++ b/JugarAlPadel/gestion_reservas/gestion_reservas/settings.py @@ -40,6 +40,7 @@ INSTALLED_APPS = [ 'django.contrib.staticfiles', 'eventos', + 'gestion_reservas', 'reymotausers', 'rest_framework', diff --git a/JugarAlPadel/gestion_reservas/gestion_reservas/urls.py b/JugarAlPadel/gestion_reservas/gestion_reservas/urls.py index 3bcf744..d1a4dac 100644 --- a/JugarAlPadel/gestion_reservas/gestion_reservas/urls.py +++ b/JugarAlPadel/gestion_reservas/gestion_reservas/urls.py @@ -33,6 +33,7 @@ urlpatterns = [ path('', views.principal, name='principal'), path('entorno/', views.ver_variables_entorno, name='ver_variables_entorno'), + path('ayuda/', views.ayuda, name='ayuda'), path('api/proximo-evento/', views.proximo_evento, name='proximo_evento'), path('api/todos-los-eventos/', views.todos_los_eventos, name='todos_los_eventos'), diff --git a/JugarAlPadel/gestion_reservas/gestion_reservas/views.py b/JugarAlPadel/gestion_reservas/gestion_reservas/views.py index 82a96a6..78bedd9 100644 --- a/JugarAlPadel/gestion_reservas/gestion_reservas/views.py +++ b/JugarAlPadel/gestion_reservas/gestion_reservas/views.py @@ -11,6 +11,9 @@ from django.http import HttpResponseForbidden from eventos.models import Noticia, Evento from .serializers import EventoSerializer +from .models import Ayuda + +import markdown # Importa la biblioteca de markdown @user_passes_test(lambda u: u.is_staff) @@ -95,3 +98,13 @@ def todos_los_eventos(request): serializer = EventoSerializer(eventos, many=True) # `many=True` para serializar una lista de eventos return Response(serializer.data) + +def ayuda(request): + elementos_ayuda = Ayuda.objects.all().order_by('apartado') + apartados = Ayuda.APARTADOS + + # Convierte la descripción de cada item a HTML usando Markdown + for item in elementos_ayuda: + item.descripcion = markdown.markdown(item.descripcion) + + return render(request, 'ayuda.html', {'elementos': elementos_ayuda, 'apartados': apartados}) diff --git a/JugarAlPadel/gestion_reservas/templates/ayuda.html b/JugarAlPadel/gestion_reservas/templates/ayuda.html new file mode 100644 index 0000000..502d660 --- /dev/null +++ b/JugarAlPadel/gestion_reservas/templates/ayuda.html @@ -0,0 +1,73 @@ +{% extends 'base.html' %} + +{% block menuapp %} + +{% endblock menuapp %} + +{% block content %} +
+ + +

Centro de Ayuda

+ + {% for code, nombre in apartados %} +
+
{{ nombre }}
+ {% for item in elementos %} + {% if item.apartado == code %} +
+
{{ item.titulo }}
+
{{ item.descripcion|safe }}
+
+ {% endif %} + {% empty %} +

No hay elementos en esta sección.

+ {% endfor %} +
+ {% endfor %} + + + + +
+{% endblock %} diff --git a/JugarAlPadel/gestion_reservas/templates/base.html b/JugarAlPadel/gestion_reservas/templates/base.html index 82e4f78..0ff5a14 100644 --- a/JugarAlPadel/gestion_reservas/templates/base.html +++ b/JugarAlPadel/gestion_reservas/templates/base.html @@ -127,7 +127,7 @@