From fd35836f47c078b33a5d4d8980a2bf4eac753b00 Mon Sep 17 00:00:00 2001 From: grisel-davy Date: Sat, 24 Mar 2018 19:42:17 +0100 Subject: [PATCH] finalisation de la page de gestion des droits --- logs/templates/logs/aff_stats_droits.html | 134 +++++++++------------- logs/views.py | 23 +++- 2 files changed, 73 insertions(+), 84 deletions(-) diff --git a/logs/templates/logs/aff_stats_droits.html b/logs/templates/logs/aff_stats_droits.html index dcd7a4db..bf672b67 100644 --- a/logs/templates/logs/aff_stats_droits.html +++ b/logs/templates/logs/aff_stats_droits.html @@ -25,86 +25,58 @@ with this program; if not, write to the Free Software Foundation, Inc., {% load bootstrap3 %} {% load acl %} -
- {% for droit in stats_list %} -
-
-

- - {{droit}} - {{droit.user_set.all.count}} -

- -
-
-
- -
- - - - - - - - - - - {% for user in droit.user_set.all %} - - - {% if user.is_adherent %} - - {% elif not user.end_adhesion %} - - {% else %} - - {% endif %} - - - - {% endfor %} - -
PseudoAdhésionDerniere connectionNombre d'actionsSupprimer
{{ user.pseudo }}

Adhérent

On ne s'en souvient plus...

Plus depuis {{ user.end_adhesion }}

{{ user.last_login }}{{ user.name }}
-
- - - -
-
+{% for droit,users in stats_list.items %} +
+
+

+ + {{droit}} + {{users.count}} +

+
+
+
+
+ + + + + + + + + + + + {% for utilisateur in users %} + + + {% if utilisateur.is_adherent %} + + {% elif not utilisateur.end_adhesion %} + + {% else %} + + {% endif %} + + + {% if not utilisateur.last %} + + {% else %} + + {% endif %} + + + {% endfor %} +
PseudoAdhésionDerniere connexionNombre d'actionsDate de la dernière action
{{ utilisateur.pseudo }}

Adhérent

On ne s'en souvient plus...

Plus depuis {{ utilisateur.end_adhesion }}

{{ utilisateur.last_login }}{{ utilisateur.num }}

Jamais

{{utilisateur.last}}

+ + + +
+
+
- {% endfor %}
+{% endfor %} \ No newline at end of file diff --git a/logs/views.py b/logs/views.py index 5b117f2f..f40ca3fc 100644 --- a/logs/views.py +++ b/logs/views.py @@ -43,10 +43,13 @@ from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger from django.contrib import messages from django.contrib.auth.decorators import login_required from django.db.models import Count +from django.db.models import Max from reversion.models import Revision from reversion.models import Version, ContentType +from time import time + from users.models import ( User, ServiceUser, @@ -450,6 +453,20 @@ def stats_actions(request): @login_required @can_view_app('users') def stats_droits(request): - """Affiche la liste des droits disponibles""" - droits=ListRight.objects.all().prefetch_related('user_set') - return render(request, 'logs/stats_droits.html', {'stats_list': droits}) + """Affiche la liste des droits et les users ayant chaque droit""" + depart=time() + stats_list={} + + for droit in ListRight.objects.all().select_related('group_ptr'):#.prefetch_related('group_ptr__user_set__revision_set'): + stats_list[droit]=droit.user_set.all().annotate(num=Count('revision'),last=Max('revision__date_created')) + + # count,last=0,0 + # for droit in ListRight.objects.all(): + # for use in droit.user_set.all(): + # countRevision.objects.filter(user=use).count() + # print(Revision.objects.order_by('date_created').last().date_created) + # stats_list[droit]=use.annotate(num=count,las) + + #raise ValueError('temps='+str(time()-depart)) + + return render(request, 'logs/stats_droits.html', {'stats_list': stats_list})