diff --git a/webpage/templates/webpages/relatorios.html b/webpage/templates/webpages/relatorios.html
index 044eb7c..f1310c3 100644
--- a/webpage/templates/webpages/relatorios.html
+++ b/webpage/templates/webpages/relatorios.html
@@ -7,13 +7,41 @@
{{ block.super }}
+
+
+
{% endblock%}
@@ -90,40 +133,133 @@
{% endif %}
-
+
+
{% trans "Report of the resource webpage" %}
+
+
{% trans "Select the period" %}
+
+
+
+
+
{% endblock %}
diff --git a/webpage/views.py b/webpage/views.py
index d83ceef..39fe0a6 100644
--- a/webpage/views.py
+++ b/webpage/views.py
@@ -9,6 +9,7 @@ from django.http import JsonResponse
from amadeus.permissions import has_subject_permissions, has_resource_permissions
import time
+import datetime
from log.models import Log
from log.mixins import LogMixin
@@ -461,41 +462,55 @@ class StatisticsView(LoginRequiredMixin, LogMixin, generic.DetailView):
slug = self.kwargs.get('slug')
webpage = get_object_or_404(Webpage, slug = slug)
- parameter = self.request.GET.get('col','')
+ date_format = "%d/%m/%Y" if self.request.GET.get('language','') == 'pt-br' else "%m/%d/%Y"
+ if self.request.GET.get('language','') == "":
+ start_date = datetime.date.today() - datetime.timedelta(30)
+ end_date = datetime.date.today()
+ else :
+ start_date = datetime.datetime.strptime(self.request.GET.get('init_date',''),date_format)
+ end_date = datetime.datetime.strptime(self.request.GET.get('end_date',''),date_format)
+ context["init_date"] = start_date
+ context["end_date"] = end_date
alunos = webpage.students.all()
- vis_ou = Log.objects.filter(context__contains={'webpage_id':webpage.id},resource="webpage",action="view",user_email__in=(aluno.email for aluno in alunos))
+
+ vis_ou = Log.objects.filter(context__contains={'webpage_id':webpage.id},resource="webpage",action="view",user_email__in=(aluno.email for aluno in alunos), datetime__range=(start_date,end_date))
did,n_did,history = str(_("Users who viewed")),str(_("Users who did not viewed")),str(_("History"))
re = []
- 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])
-
-
+ data_did, data_n_did,data_history = [],[],[]
+ json_did, json_n_did, json_history = {},{},{}
+ # column = []
+ # column.append([str(_("User")),"string"])
+ # column.append([str(_("Group")),"string"])
+
+ 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_did.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")])
+ json_did["data"] = data_did
+
+ # column.append([str(_("Action")),"string"])
+ # column.append([str(_("Date of action")),"date"])
+ for log_al in vis_ou.order_by("datetime"):
+ data_history.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])
+ json_history["data"] = data_history
+
+ not_view = alunos.exclude(email__in=[log.user_email for log in vis_ou.distinct("user_email")])
+ for alun in not_view:
+ data_n_did.append([str(alun),", ".join([str(x) for x in webpage.topic.subject.group_subject.filter(participants__email=alun.email)])])
+ json_n_did["data"] = data_n_did
+
+
+ context["json_did"] = json_did
+ context["json_n_did"] = json_n_did
+ context["json_history"] = json_history
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])
@@ -504,26 +519,8 @@ class StatisticsView(LoginRequiredMixin, LogMixin, generic.DetailView):
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 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["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
+ context["did_table"] = did
+ context["history_table"] = history
return context
--
libgit2 0.21.2