From 319a95cc914a0780bfff6b575917d3c41c7c00c3 Mon Sep 17 00:00:00 2001 From: adrigongv23 Date: Tue, 23 Jun 2026 13:36:10 +0200 Subject: [PATCH] =?UTF-8?q?Secci=C3=B3n=20miembros=20implementada?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Plataform_Web/gades_manager/urls.py | 1 + Plataform_Web/templates/base.html | 2 +- Plataform_Web/templates/index.html | 4 +- Plataform_Web/templates/listado_miembros.html | 90 +++++++++++++++++++ Plataform_Web/users/views.py | 27 ++++++ 5 files changed, 121 insertions(+), 3 deletions(-) create mode 100644 Plataform_Web/templates/listado_miembros.html diff --git a/Plataform_Web/gades_manager/urls.py b/Plataform_Web/gades_manager/urls.py index 041724f..8d9fbea 100644 --- a/Plataform_Web/gades_manager/urls.py +++ b/Plataform_Web/gades_manager/urls.py @@ -27,4 +27,5 @@ urlpatterns = [ path('login/', auth_views.LoginView.as_view(template_name='login.html'), name='login'), path('logout/', auth_views.LogoutView.as_view(next_page='login'), name='logout'), path('mi-perfil/', users_views.mi_perfil, name='mi_perfil'), + path('miembros/', users_views.listado_miembros, name='listado_miembros'), ] \ No newline at end of file diff --git a/Plataform_Web/templates/base.html b/Plataform_Web/templates/base.html index bf234a7..9c2c6a9 100644 --- a/Plataform_Web/templates/base.html +++ b/Plataform_Web/templates/base.html @@ -53,7 +53,7 @@ Patrocinios {% if user.is_authenticated and user.rol == 'directiva' %} diff --git a/Plataform_Web/templates/index.html b/Plataform_Web/templates/index.html index 4a606a4..a3a931a 100644 --- a/Plataform_Web/templates/index.html +++ b/Plataform_Web/templates/index.html @@ -59,7 +59,7 @@
Miembros del Equipo

Directorio completo de integrantes, correos corporativos y roles.

- Ver Directorio + Ver Directorio
@@ -81,7 +81,7 @@
Miembros del Equipo

Directorio completo de integrantes, correos corporativos y roles.

- Ver Directorio + Ver Directorio
diff --git a/Plataform_Web/templates/listado_miembros.html b/Plataform_Web/templates/listado_miembros.html new file mode 100644 index 0000000..5746c3a --- /dev/null +++ b/Plataform_Web/templates/listado_miembros.html @@ -0,0 +1,90 @@ +{% extends 'base.html' %} +{% load static %} + +{% block title %}Miembros | Gades Manager{% endblock title %} + +{% block content %} +
+
+
+

Miembros del Equipo

+

Directorio completo de integrantes de Formula Gades.

+
+
+
+ +
+
+
+
+ +
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + {% if filtro_rol or filtro_especialidad or filtro_apellido %} + × + {% endif %} +
+
+ +
+ + + + + + + + + + + + + {% for miembro in miembros %} + + + + + + + + + {% empty %} + + + + {% endfor %} + +
UsuarioNombreApellidosEmailÁrea TécnicaRol
{{ miembro.username }}{{ miembro.first_name }}{{ miembro.last_name }}{{ miembro.email }}{{ miembro.get_especialidad_display|default:"—" }}{{ miembro.get_rol_display }}
No se han encontrado miembros con los filtros seleccionados.
+
+ +
+
+
+
+{% endblock content %} diff --git a/Plataform_Web/users/views.py b/Plataform_Web/users/views.py index c61cc63..cea88d4 100644 --- a/Plataform_Web/users/views.py +++ b/Plataform_Web/users/views.py @@ -4,6 +4,7 @@ from django.contrib.auth.forms import PasswordChangeForm from django.contrib.auth import update_session_auth_hash from django.contrib import messages from .forms import PerfilForm +from .models import CustomUser @login_required @@ -37,3 +38,29 @@ def mi_perfil(request): 'password_form': password_form, } return render(request, 'mi_perfil.html', context) + + +@login_required +def listado_miembros(request): + miembros = CustomUser.objects.all().order_by('last_name', 'first_name') + + rol = request.GET.get('rol', '') + especialidad = request.GET.get('especialidad', '') + apellido = request.GET.get('apellido', '') + + if rol: + miembros = miembros.filter(rol=rol) + if especialidad: + miembros = miembros.filter(especialidad=especialidad) + if apellido: + miembros = miembros.filter(last_name__icontains=apellido) + + context = { + 'miembros': miembros, + 'rol_choices': CustomUser.ROL_CHOICES, + 'especialidad_choices': CustomUser.ESPECIALIDAD_CHOICES, + 'filtro_rol': rol, + 'filtro_especialidad': especialidad, + 'filtro_apellido': apellido, + } + return render(request, 'listado_miembros.html', context)