feat Listado de los proyectos coordinados por el usuario

parent 5f9dbf3f
......@@ -163,7 +163,9 @@ class Plan(models.Model):
class ParticipanteProyecto(models.Model):
proyecto = models.ForeignKey("Proyecto", on_delete=models.PROTECT)
proyecto = models.ForeignKey(
"Proyecto", on_delete=models.PROTECT, related_name="participantes"
)
tipo_participacion = models.ForeignKey(
"TipoParticipacion", on_delete=models.PROTECT
)
......
......@@ -9,6 +9,7 @@ from .views import (
ProyectoCreateView,
ProyectoDetailView,
ProyectoUpdateFieldView,
ProyectosUsuarioListView,
)
urlpatterns = [
......@@ -22,6 +23,9 @@ urlpatterns = [
ProyectoUpdateFieldView.as_view(),
name="proyecto_update_field",
),
path(
"proyecto/", ProyectosUsuarioListView.as_view(), name="proyectos_usuario_list"
),
]
if settings.DEBUG:
......
......@@ -135,3 +135,20 @@ class ProyectoUpdateFieldView(LoginRequiredMixin, UpdateView):
)
self.fields = (campo,)
return super().get_form_class()
class ProyectosUsuarioListView(LoginRequiredMixin, ListView):
"""Lista los proyectos coordinados por el usuario actual."""
context_object_name = "proyectos"
template_name = "proyecto/list.html"
def get_queryset(self):
# TODO ¿Listar sólo los de la convocatoria actual?
usuario = self.request.user
return Proyecto.objects.filter(
participantes__tipo_participacion__in=[
"coordinador",
"coordinador_principal",
]
).filter(participantes__usuario=usuario)
{% load static %}{% load custom_tags %}<!DOCTYPE html>
{% load custom_tags i18n static %}<!DOCTYPE html>
<html lang="es">
<head>
<!-- Required meta tags -->
......@@ -66,30 +66,33 @@
<div class="collapse navbar-collapse" id="navbarCollapse">
<ul class="navbar-nav ml-auto">
<li class="nav-item">
<a class="nav-link" href="{% url 'ayuda' %}"><i class="fas fa-question-circle"></i> &nbsp;Ayuda</a>
<a class="nav-link" href="{% url 'proyectos_usuario_list' %}"><i class="fas fa-project-diagram"></i> &nbsp;{% trans "Proyectos" %}</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'ayuda' %}"><i class="fas fa-question-circle"></i> &nbsp;{% trans "Ayuda" %}</a>
</li>
<li class="nav-item">
{% if user.is_authenticated %}
<a
class="nav-link dropdown-toggle"
href="#"
id="userMenu"
data-toggle="dropdown"
aria-haspopup="true"
aria-expanded="false"
>
<i class="fas fa-user"></i>&nbsp; {{ user.username }}
</a>
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="userMenu">
<a class="dropdown-item" href="{% url 'password_change' %}"
><i class="fas fa-key"></i> Cambiar contraseña</a
<a
class="nav-link dropdown-toggle"
href="#"
id="userMenu"
data-toggle="dropdown"
aria-haspopup="true"
aria-expanded="false"
>
<div class="dropdown-divider"></div>
{# Follow https://github.com/python-social-auth/social-core/issues/199 #}
<a class="dropdown-item" href="{% url 'logout' %}"><i class="fas fa-sign-out-alt"></i> Cerrar sesión</a>
</div>
<i class="fas fa-user"></i>&nbsp; {{ user.username }}
</a>
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="userMenu">
<a class="dropdown-item" href="{% url 'password_change' %}"
><i class="fas fa-key"></i> {% trans "Cambiar contraseña" %}</a
>
<div class="dropdown-divider"></div>
{# Follow https://github.com/python-social-auth/social-core/issues/199 #}
<a class="dropdown-item" href="{% url 'logout' %}"><i class="fas fa-sign-out-alt"></i> {% trans "Cerrar sesión" %}</a>
</div>
{% else %}
<a class="nav-link" href="{% lord_url %}"><i class="fas fa-sign-in-alt"></i> &nbsp;Iniciar sesión</a>
<a class="nav-link" href="{% lord_url %}"><i class="fas fa-sign-in-alt"></i> &nbsp;{% trans "Iniciar sesión" %}</a>
{% endif %}
</li>
</ul>
......
{% extends 'base.html' %}
{% load i18n %}
{% block title %}{% trans "Proyectos coordinados por el usuario" %}{% endblock title %}
{% block description %}{% trans "Proyectos coordinados por el usuario" %}{% endblock description %}
{% block content %}
<div class="container-blanco">
<h1>{% trans "Proyectos coordinados" %}</h1>
<hr><br>
<ul>
{% for proyecto in proyectos %}
<li><a href="{% url 'proyecto_detail' proyecto.id %}">{{ proyecto.titulo }}</a></li>
{% endfor %}
</ul>
<a href="{%url 'proyecto_new' %}" class="btn btn-info">{% trans "Solicitar nuevo proyecto" %}</a>
</div>
{% endblock content %}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment