From cc50d540c34e447bbf315d454eea5ad0c961f352 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20P=C3=A9pin?= Date: Wed, 6 Jan 2021 20:17:25 +0100 Subject: [PATCH 1/2] Display the list of groups at /_groups/ --- .../templates/wiki_groups/{graph.html => list.html} | 10 ++++++++++ wiki_groups/urls.py | 2 +- wiki_groups/views.py | 10 +++++++++- 3 files changed, 20 insertions(+), 2 deletions(-) rename wiki_groups/templates/wiki_groups/{graph.html => list.html} (87%) diff --git a/wiki_groups/templates/wiki_groups/graph.html b/wiki_groups/templates/wiki_groups/list.html similarity index 87% rename from wiki_groups/templates/wiki_groups/graph.html rename to wiki_groups/templates/wiki_groups/list.html index f2cfea7..b20c4e8 100644 --- a/wiki_groups/templates/wiki_groups/graph.html +++ b/wiki_groups/templates/wiki_groups/list.html @@ -4,6 +4,16 @@ {% block wiki_site_title %}Groupes - WikiENS{% endblock %} {% block wiki_contents %} +

Liste des groupes du wiki

+ +
+ + +

Graphe des groupes du wiki


diff --git a/wiki_groups/urls.py b/wiki_groups/urls.py index b9c4f44..8414869 100644 --- a/wiki_groups/urls.py +++ b/wiki_groups/urls.py @@ -4,8 +4,8 @@ from wiki_groups import views app_name = "wiki_groups" urlpatterns = [ + path("", views.GroupList.as_view(), name="list"), path("dot_graph", views.dot_graph, name="dot_graph"), - path("graph", views.graph, name="graph"), path("managed", views.ManagedGroupsView.as_view(), name="managed-groups"), path("", views.WikiGroupView.as_view(), name="admin-group"), path( diff --git a/wiki_groups/views.py b/wiki_groups/views.py index f580963..bba5db7 100644 --- a/wiki_groups/views.py +++ b/wiki_groups/views.py @@ -30,7 +30,15 @@ def dot_graph(request): return response -graph = TemplateView.as_view(template_name="wiki_groups/graph.html") +class GroupList(ListView): + template_name = "wiki_groups/list.html" + model = WikiGroup + context_object_name = "groups" + + def get_queryset(self): + return WikiGroup.objects.values_list("id", "django_group__name").order_by( + "django_group__name" + ) class WikiGroupMixin(SingleObjectMixin, UserPassesTestMixin): From 29c5abbc1af6e433f4345da51f22c4b277f601d0 Mon Sep 17 00:00:00 2001 From: Tom Hubrecht Date: Tue, 26 Oct 2021 20:01:58 +0200 Subject: [PATCH 2/2] On affiche la liste des managers --- wiki_groups/templates/wiki_groups/list.html | 67 +++++++++++---------- wiki_groups/views.py | 5 +- 2 files changed, 38 insertions(+), 34 deletions(-) diff --git a/wiki_groups/templates/wiki_groups/list.html b/wiki_groups/templates/wiki_groups/list.html index b20c4e8..ecf293e 100644 --- a/wiki_groups/templates/wiki_groups/list.html +++ b/wiki_groups/templates/wiki_groups/list.html @@ -4,44 +4,49 @@ {% block wiki_site_title %}Groupes - WikiENS{% endblock %} {% block wiki_contents %} -

Liste des groupes du wiki

+

+ Liste des groupes du wiki + {% if request.user.is_staff or request.user.managed_groups.exists %} + + Liste des groupes gérés + + {% endif %} +

+
-
+
    + {% for group in wikigroup_list %} +
  • {{ group.django_group.name }} {% if group.managers.exists %}(Géré par {% for m in group.managers.all %}{{ m }}{% if not forloop.last %}, {% endif %}{% endfor %}){% endif %}
  • + {% endfor %} +
-
    - {% for id, name in groups %} -
  • {{name}}
  • - {% endfor %} -
+

Graphe des groupes du wiki

+
-

Graphe des groupes du wiki

+
+
-
+

+ Les flèches représentent l'inclusion : A -> B signifie que + le groupe A est contenu dans le groupe B. +

-
+ + + - - + } + }; + xhttp.open('GET', '{% url 'wiki_groups:dot_graph' %}', true); + xhttp.send(); + + {% endblock %} diff --git a/wiki_groups/views.py b/wiki_groups/views.py index bba5db7..db751b9 100644 --- a/wiki_groups/views.py +++ b/wiki_groups/views.py @@ -2,7 +2,7 @@ from django.contrib.auth import get_user_model from django.contrib.auth.mixins import LoginRequiredMixin, UserPassesTestMixin from django.http import HttpResponse, HttpResponseRedirect from django.urls import reverse, reverse_lazy -from django.views.generic import DetailView, ListView, RedirectView, TemplateView +from django.views.generic import DetailView, ListView, RedirectView from django.views.generic.detail import SingleObjectMixin from django.views.generic.edit import BaseFormView @@ -33,10 +33,9 @@ def dot_graph(request): class GroupList(ListView): template_name = "wiki_groups/list.html" model = WikiGroup - context_object_name = "groups" def get_queryset(self): - return WikiGroup.objects.values_list("id", "django_group__name").order_by( + return WikiGroup.objects.select_related("django_group").order_by( "django_group__name" )