From eeb4d113b613664019c46a16a65b7dfd65500704 Mon Sep 17 00:00:00 2001 From: Med Date: Tue, 4 Jul 2017 02:46:20 +0200 Subject: [PATCH] App logs --- logs/templates/logs/aff_stats_users.html | 45 ++++++++++++++++++++++++ logs/templates/logs/sidebar.html | 7 +++- logs/templates/logs/stats_users.html | 36 +++++++++++++++++++ logs/urls.py | 1 + logs/views.py | 12 +++++++ 5 files changed, 100 insertions(+), 1 deletion(-) create mode 100644 logs/templates/logs/aff_stats_users.html create mode 100644 logs/templates/logs/stats_users.html diff --git a/logs/templates/logs/aff_stats_users.html b/logs/templates/logs/aff_stats_users.html new file mode 100644 index 0000000..f5b21c7 --- /dev/null +++ b/logs/templates/logs/aff_stats_users.html @@ -0,0 +1,45 @@ +{% comment %} +Re2o est un logiciel d'administration développé initiallement au rezometz. Il +se veut agnostique au réseau considéré, de manière à être installable en +quelques clics. + +Copyright © 2017 Gabriel Détraz +Copyright © 2017 Goulven Kermarec +Copyright © 2017 Augustin Lemesle + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along +with this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +{% endcomment %} + + {% for key_dict, stats_dict in stats_list.items %} + {% for key, stats in stats_dict.items %} + + +

Statistiques par {{ key_dict }} de {{ key }}

+ + + + + + + {% for stat in stats %} + + + + + + {% endfor %} +
{{ key_dict }}Nombre de {{ key }} par {{ key_dict }}Rang
{{ stat|truncatechars:25 }}{{ stat.num }}{{ forloop.counter }}
+ {% endfor %} + {% endfor %} diff --git a/logs/templates/logs/sidebar.html b/logs/templates/logs/sidebar.html index 23845e4..5037337 100644 --- a/logs/templates/logs/sidebar.html +++ b/logs/templates/logs/sidebar.html @@ -25,10 +25,15 @@ with this program; if not, write to the Free Software Foundation, Inc., {% block sidebar %} - {% if is_med %} + {% if is_perm %} Évènements + + + Actions sur la bdd + + {% endif %} {% endblock %} diff --git a/logs/templates/logs/stats_users.html b/logs/templates/logs/stats_users.html new file mode 100644 index 0000000..fa0843e --- /dev/null +++ b/logs/templates/logs/stats_users.html @@ -0,0 +1,36 @@ +{% extends "logs/sidebar.html" %} +{% comment %} +Re2o est un logiciel d'administration développé initiallement au rezometz. Il +se veut agnostique au réseau considéré, de manière à être installable en +quelques clics. + +Copyright © 2017 Gabriel Détraz +Copyright © 2017 Goulven Kermarec +Copyright © 2017 Augustin Lemesle + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along +with this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +{% endcomment %} + +{% load bootstrap3 %} + +{% block title %}Statistiques par utilisateur{% endblock %} + +{% block content %} +

Statistiques par utilisateur

+ {% include "logs/aff_stats_users.html" with stats_list=stats_list %} +
+
+
+ {% endblock %} diff --git a/logs/urls.py b/logs/urls.py index c8286b7..63929bf 100644 --- a/logs/urls.py +++ b/logs/urls.py @@ -27,4 +27,5 @@ from . import views urlpatterns = [ url(r'^$', views.index, name='index'), url(r'^revert_action/(?P[0-9]+)$', views.revert_action, name='revert-action'), + url(r'^stats_actions/$', views.stats_actions, name='stats-actions'), ] diff --git a/logs/views.py b/logs/views.py index cc3d13d..6168b32 100644 --- a/logs/views.py +++ b/logs/views.py @@ -39,6 +39,7 @@ from django.db.models import Count from reversion.models import Revision from reversion.models import Version +from users.models import User from med.settings import PAGINATION_NUMBER as pagination_number from django.utils import timezone @@ -77,3 +78,14 @@ def revert_action(request, revision_id): messages.success(request, "L'action a été supprimée") return redirect("/logs/") return form({'objet': revision, 'objet_name': revision.__class__.__name__ }, 'logs/delete.html', request) + +@login_required +@permission_required('perm') +def stats_actions(request): + onglet = request.GET.get('onglet') + stats = { + 'Utilisateur' : { + 'Action' : User.objects.annotate(num=Count('revision')).order_by('-num')[:40], + }, + } + return render(request, 'logs/stats_users.html', {'stats_list': stats})