Commit aaba22304bbc3a5de24b8be46ba375bcd7269bb9

Authored by Jailson Dias
1 parent 4a391dc8

organizando os dados em duas tabelas e com a quantidade de registros em webpage

webpage/templates/webpages/relatorios.html
@@ -21,14 +21,6 @@ @@ -21,14 +21,6 @@
21 json_history["data"][i][2],json_history["data"][i][3]]); 21 json_history["data"][i][2],json_history["data"][i][3]]);
22 } 22 }
23 23
24 -  
25 - var array_did = [];  
26 - {%for data_json in json_did.data%}  
27 - array_did.push(["{{data_json.0}}","{{data_json.1}}","{{data_json.2}}",{% if data_json.3 is not None %}new Date('{{data_json.3.isoformat}}'){% else%}null{% endif %}]);  
28 - {% endfor%}  
29 - var json_did = {"data":array_did};  
30 - var column_did = [{"string":'{% trans "User" %}'},{"string":'{% trans "Group" %}'},{"string":'{% trans "Action" %}'},{"date":'{% trans "Date of Action" %}'}];  
31 -  
32 var array_n_did = []; 24 var array_n_did = [];
33 {%for data_json in json_n_did.data%} 25 {%for data_json in json_n_did.data%}
34 array_n_did.push(["{{data_json.0}}","{{data_json.1}}"]); 26 array_n_did.push(["{{data_json.0}}","{{data_json.1}}"]);
@@ -82,17 +74,12 @@ @@ -82,17 +74,12 @@
82 putpagination(json_n_did["data"]); 74 putpagination(json_n_did["data"]);
83 75
84 } else if (col == "{{did_table}}" && text("#title-table") != "{{did_table}}"){ 76 } else if (col == "{{did_table}}" && text("#title-table") != "{{did_table}}"){
85 - if (length("#link-history") <= 0){  
86 - add(element,"#view-table",true);  
87 - }  
88 - altertitle("{{did_table}}");  
89 search = []; 77 search = [];
90 - for (var i in json_did["data"]){  
91 - search.push([json_did["data"][i][0],json_did["data"][i][1],  
92 - json_did["data"][i][2],json_did["data"][i][3]]); 78 + for (var i in json_history["data"]){
  79 + search.push([json_history["data"][i][0],json_history["data"][i][1],
  80 + json_history["data"][i][2],json_history["data"][i][3]]);
93 } 81 }
94 - drawTable(column_did,pagination(json_did["data"],1),true,3);  
95 - putpagination(json_did["data"]); 82 + searcher(col, true);
96 } 83 }
97 } 84 }
98 chart.setSelection([]) 85 chart.setSelection([])
@@ -125,7 +112,7 @@ @@ -125,7 +112,7 @@
125 112
126 var table = new google.visualization.Table(document.getElementById('table_div')); 113 var table = new google.visualization.Table(document.getElementById('table_div'));
127 114
128 - table.draw(data_table, {showRowNumber: true, width: '100%', height: '100%'}); 115 + table.draw(data_table, {allowHtml: true, cssClassNames : {tableRow: 'text-center',tableCell: 'text-center', headerCell: 'text-center'},showRowNumber: true, width: '100%', height: '100%'});
129 } 116 }
130 </script> 117 </script>
131 {% endblock%} 118 {% endblock%}
@@ -193,7 +180,7 @@ @@ -193,7 +180,7 @@
193 <ul class="list-inline nav-justified"> 180 <ul class="list-inline nav-justified">
194 <li> 181 <li>
195 <ul id="view-table" class="list-inline text-right"> 182 <ul id="view-table" class="list-inline text-right">
196 - <li><h3 id="title-table">{{history_table}}</h3></li> 183 + <li><h3 id="title-table"></h3></li>
197 </ul> 184 </ul>
198 </li> 185 </li>
199 <li> 186 <li>
@@ -219,6 +206,7 @@ @@ -219,6 +206,7 @@
219 </div> 206 </div>
220 207
221 <script type="text/javascript"> 208 <script type="text/javascript">
  209 + $("#title-table").text(search.length + " {% trans 'record(s)' %}");
222 function putpagination(data = json_history["data"]){ 210 function putpagination(data = json_history["data"]){
223 var len = Math.ceil(data.length / 20); 211 var len = Math.ceil(data.length / 20);
224 $(".pagination").empty(); 212 $(".pagination").empty();
@@ -257,51 +245,49 @@ @@ -257,51 +245,49 @@
257 } 245 }
258 function backhistory(){ 246 function backhistory(){
259 drawTable(column_history,json_history["data"],true,3); 247 drawTable(column_history,json_history["data"],true,3);
260 - $("#title-table").text("{{history_table}}");  
261 $("#link-history").remove(); 248 $("#link-history").remove();
262 search = []; 249 search = [];
263 for (var i in json_history["data"]){ 250 for (var i in json_history["data"]){
264 search.push([json_history["data"][i][0],json_history["data"][i][1], 251 search.push([json_history["data"][i][0],json_history["data"][i][1],
265 json_history["data"][i][2],json_history["data"][i][3]]); 252 json_history["data"][i][2],json_history["data"][i][3]]);
266 } 253 }
  254 + $("#title-table").text(search.length + " {% trans 'record(s)' %}");
267 putpagination(json_history["data"]); 255 putpagination(json_history["data"]);
268 } 256 }
269 - // $("#search-input").on("keyup",function(){  
270 - // console.log($("#search-input").val());  
271 - // }); 257 +
  258 +
272 $("#search-input").on("keyup",function(){ 259 $("#search-input").on("keyup",function(){
273 search = []; 260 search = [];
274 var text = $("#search-input").val(); 261 var text = $("#search-input").val();
  262 + searcher(text);
  263 + });
  264 +
  265 + function searcher(text, load_histoty = false){
  266 + if (load_histoty){
  267 + $("#link-history").remove();
  268 + }
275 var data = []; 269 var data = [];
276 - if ($("#title-table").text() == "{{n_did_table}}"){ 270 + if ($("#title-table").text() == "{{n_did_table}}" && !load_histoty){
277 data = $.map(json_n_did["data"], function (obj) { 271 data = $.map(json_n_did["data"], function (obj) {
278 return $.extend(true, {}, obj); 272 return $.extend(true, {}, obj);
279 }); 273 });
280 - } else if ($("#title-table").text() == "{{did_table}}") {  
281 - data = $.map(json_did["data"], function (obj) {  
282 - return $.extend(true, {}, obj);  
283 - });  
284 } else { 274 } else {
285 data = $.map(json_history["data"], function (obj) { 275 data = $.map(json_history["data"], function (obj) {
286 return $.extend(true, {}, obj); 276 return $.extend(true, {}, obj);
287 }); 277 });
288 } 278 }
289 - if ($("#title-table").text() != "{{n_did_table}}"){ 279 + if (load_histoty || $("#title-table").text() != "{{n_did_table}}"){
290 for (var i in data){ 280 for (var i in data){
291 data[i][3] = moment(data[i][3]).format("DD/MM/YYYY HH:mm"); 281 data[i][3] = moment(data[i][3]).format("DD/MM/YYYY HH:mm");
292 } 282 }
293 } 283 }
294 - if ($("#title-table").text() != "{{n_did_table}}"){ 284 + if (load_histoty || $("#title-table").text() != "{{n_did_table}}"){
295 for (var i in data){ 285 for (var i in data){
296 if (data[i][0].toLowerCase().includes(text.toLowerCase()) 286 if (data[i][0].toLowerCase().includes(text.toLowerCase())
297 || data[i][1].toLowerCase().includes(text.toLowerCase()) 287 || data[i][1].toLowerCase().includes(text.toLowerCase())
298 || data[i][2].toLowerCase().includes(text.toLowerCase()) 288 || data[i][2].toLowerCase().includes(text.toLowerCase())
299 || data[i][3].toLowerCase().includes(text.toLowerCase())){ 289 || data[i][3].toLowerCase().includes(text.toLowerCase())){
300 - if ($("#title-table").text() == "{{did_table}}"){  
301 - search.push(json_did["data"][i]);  
302 - } else {  
303 - search.push(json_history["data"][i]);  
304 - } 290 + search.push(json_history["data"][i]);
305 } 291 }
306 } 292 }
307 } 293 }
@@ -313,16 +299,16 @@ @@ -313,16 +299,16 @@
313 } 299 }
314 } 300 }
315 } 301 }
316 - // console.log(search,"busca");  
317 - if (($("#title-table").text() == "{{did_table}}")){  
318 - drawTable(column_did,pagination(search,1),true,3);  
319 - } else if (($("#title-table").text() == "{{n_did_table}}")){ 302 + if (!load_histoty && ($("#title-table").text() == "{{n_did_table}}")){
320 drawTable(column_n_did,pagination(search,1),false); 303 drawTable(column_n_did,pagination(search,1),false);
321 } else { 304 } else {
322 drawTable(column_history,pagination(search,1),true,3); 305 drawTable(column_history,pagination(search,1),true,3);
323 } 306 }
  307 + if (load_histoty || ($("#title-table").text() != "{{n_did_table}}")){
  308 + $("#title-table").text(search.length + " {% trans 'record(s)' %}");
  309 + }
324 putpagination(search); 310 putpagination(search);
325 - }); 311 + }
326 312
327 function pagination(data,pag){ 313 function pagination(data,pag){
328 var len = data.length; 314 var len = data.length;
@@ -330,16 +316,12 @@ @@ -330,16 +316,12 @@
330 var end = (pag * 20 < len) ? pag * 20:len; 316 var end = (pag * 20 < len) ? pag * 20:len;
331 var search = data.slice(first,end); 317 var search = data.slice(first,end);
332 return search; 318 return search;
333 - // $(".pagination > .disabled").css("color","red");  
334 } 319 }
335 function clickPagination(pag){ 320 function clickPagination(pag){
336 $(".pagination > li").last().remove(); 321 $(".pagination > li").last().remove();
337 $(".pagination > li").first().remove(); 322 $(".pagination > li").first().remove();
338 323
339 - // console.log(search,"texto");  
340 - if (($("#title-table").text() == "{{did_table}}")){  
341 - drawTable(column_did,pagination(search,pag),true,3);  
342 - } else if (($("#title-table").text() == "{{n_did_table}}")){ 324 + if (($("#title-table").text() == "{{n_did_table}}")){
343 drawTable(column_n_did,pagination(search,pag),false); 325 drawTable(column_n_did,pagination(search,pag),false);
344 } else { 326 } else {
345 drawTable(column_history,pagination(search,pag),true,3); 327 drawTable(column_history,pagination(search,pag),true,3);
webpage/views.py
@@ -475,27 +475,15 @@ class StatisticsView(LoginRequiredMixin, LogMixin, generic.DetailView): @@ -475,27 +475,15 @@ class StatisticsView(LoginRequiredMixin, LogMixin, generic.DetailView):
475 alunos = webpage.students.all() 475 alunos = webpage.students.all()
476 476
477 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 + datetime.timedelta(minutes = 1))) 477 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 + datetime.timedelta(minutes = 1)))
478 - did,n_did,history = str(_("Users who viewed")),str(_("Users who did not viewed")),str(_("Historic")) 478 + did,n_did,history = str(_("Realized")),str(_("Unrealized")),str(_("Historic"))
479 re = [] 479 re = []
480 - data_did, data_n_did,data_history = [],[],[]  
481 - json_did, json_n_did, json_history = {},{},{}  
482 - # column = []  
483 - # column.append([str(_("User")),"string"])  
484 - # column.append([str(_("Group")),"string"]) 480 + data_n_did,data_history = [],[]
  481 + json_n_did, json_history = {},{}
485 482
486 from django.db.models import Count, Max 483 from django.db.models import Count, Max
487 views_user = vis_ou.values("user_email").annotate(views=Count("user_email")) 484 views_user = vis_ou.values("user_email").annotate(views=Count("user_email"))
488 date_last = vis_ou.values("user_email").annotate(last=Max("datetime")) 485 date_last = vis_ou.values("user_email").annotate(last=Max("datetime"))
489 - # column.append([str(_("Number of views")),"string"])  
490 - # column.append([str(_("Date of last view")),"date"])  
491 - for i in range(0,len(views_user)):  
492 - data_did.append([str(alunos.get(email=views_user[i].get("user_email"))),  
493 - ", ".join([str(x) for x in webpage.topic.subject.group_subject.filter(participants__email=views_user[i].get("user_email"))]),  
494 - views_user[i].get("views"),date_last.get(user_email=views_user[i].get("user_email")).get("last")])  
495 - json_did["data"] = data_did  
496 -  
497 - # column.append([str(_("Action")),"string"])  
498 - # column.append([str(_("Date of action")),"date"]) 486 +
499 for log_al in vis_ou.order_by("datetime"): 487 for log_al in vis_ou.order_by("datetime"):
500 data_history.append([str(alunos.get(email=log_al.user_email)), 488 data_history.append([str(alunos.get(email=log_al.user_email)),
501 ", ".join([str(x) for x in webpage.topic.subject.group_subject.filter(participants__email=log_al.user_email)]), 489 ", ".join([str(x) for x in webpage.topic.subject.group_subject.filter(participants__email=log_al.user_email)]),
@@ -503,12 +491,12 @@ class StatisticsView(LoginRequiredMixin, LogMixin, generic.DetailView): @@ -503,12 +491,12 @@ class StatisticsView(LoginRequiredMixin, LogMixin, generic.DetailView):
503 json_history["data"] = data_history 491 json_history["data"] = data_history
504 492
505 not_view = alunos.exclude(email__in=[log.user_email for log in vis_ou.distinct("user_email")]) 493 not_view = alunos.exclude(email__in=[log.user_email for log in vis_ou.distinct("user_email")])
  494 +
506 for alun in not_view: 495 for alun in not_view:
507 - data_n_did.append([str(alun),", ".join([str(x) for x in webpage.topic.subject.group_subject.filter(participants__email=alun.email)])]) 496 + data_n_did.append([str(alun),", ".join([str(x) for x in webpage.topic.subject.group_subject.filter(participants__email=alun.email)]),str(_('View'))])
508 json_n_did["data"] = data_n_did 497 json_n_did["data"] = data_n_did
509 498
510 499
511 - context["json_did"] = json_did  
512 context["json_n_did"] = json_n_did 500 context["json_n_did"] = json_n_did
513 context["json_history"] = json_history 501 context["json_history"] = json_history
514 c_visualizou = vis_ou.distinct("user_email").count() 502 c_visualizou = vis_ou.distinct("user_email").count()