From 35a9a0b8e03e4123ee51e527542d39c1074b1f71 Mon Sep 17 00:00:00 2001 From: Jailson Dias Date: Fri, 21 Apr 2017 00:38:10 -0300 Subject: [PATCH] atualizando grafico e tabelas de relatórios da webpage --- webpage/templates/webpages/estatisticas.html | 104 -------------------------------------------------------------------------------------------------------- webpage/templates/webpages/relatorios.html | 129 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ webpage/templates/webpages/view.html | 6 ------ webpage/views.py | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++------------------ 4 files changed, 182 insertions(+), 128 deletions(-) delete mode 100644 webpage/templates/webpages/estatisticas.html create mode 100644 webpage/templates/webpages/relatorios.html diff --git a/webpage/templates/webpages/estatisticas.html b/webpage/templates/webpages/estatisticas.html deleted file mode 100644 index f5d0c73..0000000 --- a/webpage/templates/webpages/estatisticas.html +++ /dev/null @@ -1,104 +0,0 @@ -{% extends "webpages/view.html" %} - -{% load static i18n pagination permissions_tags subject_counter %} -{% load django_bootstrap_breadcrumbs %} - -{% block javascript%} - {{ block.super }} - - -{% endblock%} - -{% block breadcrumbs %} - {{ block.super }} - {% trans 'Estatisticas' as bread %} - {% breadcrumb bread webpage%} -{% endblock %} - -{% block content %} - {% if messages %} - {% for message in messages %} - - {% endfor %} - {% endif %} -
-
-
-
-
- -
-
-
- -

{{title_table}}

-
-
-
-
-
-

-
-{% endblock %} diff --git a/webpage/templates/webpages/relatorios.html b/webpage/templates/webpages/relatorios.html new file mode 100644 index 0000000..044eb7c --- /dev/null +++ b/webpage/templates/webpages/relatorios.html @@ -0,0 +1,129 @@ +{% extends "webpages/view.html" %} + +{% load static i18n pagination permissions_tags subject_counter %} +{% load django_bootstrap_breadcrumbs %} + +{% block javascript%} + {{ block.super }} + + +{% endblock%} + +{% block breadcrumbs %} + {{ block.super }} + {% trans 'Reports' as bread %} + {% breadcrumb bread webpage%} +{% endblock %} + +{% block content %} + {% if messages %} + {% for message in messages %} + + {% endfor %} + {% endif %} +
+
+
+
+
+ +
+
+
+ + +
+
+ +
+
+
+
+
+
+
+
+
+

+
+{% endblock %} diff --git a/webpage/templates/webpages/view.html b/webpage/templates/webpages/view.html index 1b2de44..5d585d8 100644 --- a/webpage/templates/webpages/view.html +++ b/webpage/templates/webpages/view.html @@ -54,11 +54,5 @@ {{ webpage.content }} {% endautoescape %} - -
- -
{% endblock %} diff --git a/webpage/views.py b/webpage/views.py index 84d8d2c..d83ceef 100644 --- a/webpage/views.py +++ b/webpage/views.py @@ -426,7 +426,7 @@ class StatisticsView(LoginRequiredMixin, LogMixin, generic.DetailView): login_url = reverse_lazy("users:login") redirect_field_name = 'next' model = Webpage - template_name = 'webpages/estatisticas.html' + template_name = 'webpages/relatorios.html' def dispatch(self, request, *args, **kwargs): slug = self.kwargs.get('slug', '') @@ -456,7 +456,7 @@ class StatisticsView(LoginRequiredMixin, LogMixin, generic.DetailView): super(StatisticsView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) - context['title'] = _('Webpage Statistics') + context['title'] = _('Webpage Reports') slug = self.kwargs.get('slug') webpage = get_object_or_404(Webpage, slug = slug) @@ -464,31 +464,66 @@ class StatisticsView(LoginRequiredMixin, LogMixin, generic.DetailView): parameter = self.request.GET.get('col','') alunos = webpage.students.all() - visualizou = Log.objects.filter(context__contains={'webpage_id':webpage.id},resource="webpage",action="view",user_email__in=(aluno.email for aluno in alunos)).distinct("user_email") + vis_ou = Log.objects.filter(context__contains={'webpage_id':webpage.id},resource="webpage",action="view",user_email__in=(aluno.email for aluno in alunos)) + did,n_did,history = str(_("Users who viewed")),str(_("Users who did not viewed")),str(_("History")) re = [] - c_visualizou = visualizou.count() - did,n_did = str(_("Did")),str(_("Did not")) - re.append(['Webpage',did,n_did]) - re.append(['View',c_visualizou, alunos.count() - c_visualizou]) + data = [] + column = [] + column.append([str(_("User")),"string"]) + column.append([str(_("Group")),"string"]) + + if parameter == did: + from django.db.models import Count, Max + views_user = vis_ou.values("user_email").annotate(views=Count("user_email")) + date_last = vis_ou.values("user_email").annotate(last=Max("datetime")) + column.append([str(_("Number of views")),"string"]) + column.append([str(_("Date of last view")),"date"]) + for i in range(0,len(views_user)): + data.append([str(alunos.get(email=views_user[i].get("user_email"))), + ", ".join([str(x) for x in webpage.topic.subject.group_subject.filter(participants__email=views_user[i].get("user_email"))]), + views_user[i].get("views"),date_last.get(user_email=views_user[i].get("user_email")).get("last")]) + elif parameter == n_did: + not_view = alunos.exclude(email__in=[log.user_email for log in vis_ou.distinct("user_email")]) + for alun in not_view: + data.append([str(alun),", ".join([str(x) for x in webpage.topic.subject.group_subject.filter(participants__email=alun.email)])]) + + else: + column.append([str(_("Action")),"string"]) + column.append([str(_("Date of action")),"date"]) + for log_al in vis_ou.order_by("datetime"): + data.append([str(alunos.get(email=log_al.user_email)), + ", ".join([str(x) for x in webpage.topic.subject.group_subject.filter(participants__email=log_al.user_email)]), + log_al.action,log_al.datetime]) + + + c_visualizou = vis_ou.distinct("user_email").count() + re.append([str(_('Webpage')),did,n_did]) + re.append([str(_('View')),c_visualizou, alunos.count() - c_visualizou]) context['topic'] = webpage.topic context['subject'] = webpage.topic.subject context['db_data'] = re context['title_chart'] = _('Students viewing the web conference') context['title_vAxis'] = _('Quantity') - data = [] - if not parameter == n_did: - for a in visualizou: - data.append([str(alunos.get(email=a.user_email)),a.user_email,a.action,a.datetime]) - - if not parameter == did: - alunos = alunos.exclude(email__in=(log.user_email for log in visualizou)) - for a in alunos: - data.append([str(a),a.email,None,None]) - + # data = [] + # if not parameter == n_did: + # for a in vis_ou.distinct("user_email"): + # data.append([str(alunos.get(email=a.user_email)),a.user_email,a.action,a.datetime]) + # + # if not parameter == did: + # alunos = alunos.exclude(email__in=(log.user_email for log in vis_ou.distinct("user_email"))) + # for a in alunos: + # data.append([str(a),a.email,None,None]) + print (column, "column\n\n") + context["column"] = column + print (data, "data\n\n") context["history"] = data - context["title_table"] = _("History") + context["title_table"] = history + context["n_did_table"] = n_did + context["out_history"] = False if parameter == did: context["title_table"] = did + context["out_history"] = True elif parameter == n_did: context["title_table"] = n_did + context["out_history"] = True return context -- libgit2 0.21.2