Skip to content
Snippets Groups Projects
Commit f01a9a64 authored by Mauricio Giacomini Girardello's avatar Mauricio Giacomini Girardello
Browse files

Merge branch 'fixing-statistics' into 'master'

Fixing statistics



See merge request !122
parents e7cc2572 d7a63869
No related branches found
No related tags found
No related merge requests found
......@@ -19,14 +19,22 @@
//= require locastyle
//= require turbolinks
//= require_tree ./management
var teachers, curators, admins;
var visualised,non_visualised;
$(document).ready(function(){
if (document.getElementById("lobject") !== null) {
visualised = document.getElementById("lobject").value;
non_visualised = document.getElementById("lobject_non").value;
var data_learning_objects = dataLearningObjects(visualised,non_visualised);
}
if (document.getElementById("n_teachers") !== null) {
teachers = document.getElementById("n_teachers").value;
curators = document.getElementById("n_curators").value;
admins = document.getElementById("n_admins").value;
var data_users = dataUsers(teachers,curators,admins);
}
var charts = ["colections","users","learning_objects","accesses"];
......@@ -44,7 +52,7 @@ $(document).ready(function(){
break;
case "learning_objects":
new Chart(ctx).Pie(data_learning_objects,pie_options);
var learning_objects_chart = new Chart(ctx).Pie(data_learnin_objects);
var learning_objects_chart = new Chart(ctx).Pie(data_learning_objects);
break;
case "accesses":
new Chart(ctx).Line(data_accesses,line_options);
......@@ -57,7 +65,7 @@ $(document).ready(function(){
}
}
}
});
);
Chart.defaults.global = {
// Boolean - Whether to animate the chart
......
//Configurações de gráficos BAR
//mais infos www.chartjs.org/docs/
var data_users = {
labels: ["Estudantes", "Professores", "Moderadores", "Admnistradores"],
function dataUsers(teachers, curators, admins){
var data = {
labels: [ "Professores", "Curadores", "Admnistradores"],
datasets: [
{
label: "My First dataset",
fillColor: "rgba(220,220,220,0.5)",
strokeColor: "rgba(220,220,220,0.8)",
highlightFill: "rgba(220,220,220,0.75)",
highlightStroke: "rgba(220,220,220,1)",
data: [20,42,7,1]
fillColor: "rgba(100,89,54,0.5)",
strokeColor: "rgba(1,34,65,0.8)",
highlightFill: "rgba(53,13,54,0.75)",
highlightStroke: "rgba(32,80,90,1)",
data: [teachers, curators, admins]
},
]
};
return data;
}
var bar_options = {
......
class Management::StatisticsController < ManagementController
include RepositoriesProxy
#before_action :set_statistics
before_action :authenticate_user!, except: [:index, :show, :like]
#inicialização, primeira query
@@flag = 0
def index
@n_collections = collection_repository.get_number_of_collections
@n_views = main_page_repository.get_number_of("Views")
@n_users = subject_repository.get_number_of("User")
@n_learning_objects = learning_object_repository.get_number_of("learningObject")
@n_non_visualised = learning_object_repository.get_number_of_non_visualised
#a cada novo login atualiza as estatísticas
if @@flag == 0 || @@user != current_user
@@user = current_user
set_statistics
@@flag = 1
end
@n_users = @@n_users
@n_collections = @@n_collections
@n_non_visualised = @@n_non_visualised
@n_learning_objects = @@n_learning_objects
@total_accesses= User.sum("sign_in_count")
end
def users
#missing roles
@n_users = subject_repository.get_number_of("User")
@n_users = User.count
@n_curators = 0
@n_admins = 0
@n_teachers = 0
User.includes(:roles).all.each do |u|
if !u.roles[0].nil?
if u.roles[0]["name"] == "curator"
@n_curators += 1
elsif u.roles[0]["name"] == "admin"
@n_admins += 1
elsif u.roles[0]["name"] == "teacher"
@n_teachers +=1
end
end
end
end
def downloads
......@@ -20,20 +47,46 @@ class Management::StatisticsController < ManagementController
def accesses
#usar o logstash e kibana
#enquanto isso, uso o sign_in_count do ActiveRecord
@total_accesses= User.sum("sign_in_count")
end
def collections
@n_collections = collection_repository.get_number_of_collections
if @@flag == 0 || @@user != current_user
@@user = current_user
set_statistics
@@flag = 1
end
@n_collections = @@n_collections || []
end
def learning_objects
@n_learning_objects = learning_object_repository.get_number_of("learningObject")
@n_non_visualised = learning_object_repository.get_number_of_non_visualised
@most_visualised = learning_object_repository.get_most_visualised
if @@flag == 0 || @@user != current_user
@@user = current_user
@@flag = 1
set_statistics
end
@n_learning_objects = @@n_learning_objects
@most_visualised = @@most_visualised
@n_non_visualised = @@n_non_visualised
end
def set_statistics
@@n_users = User.count
@@n_collections = collection_repository.get_number_of_collections || []
@@n_learning_objects = learning_object_repository.count_all || []
@@n_non_visualised = learning_object_repository.get_number_of_non_visualised || []
@@most_visualised = learning_object_repository.get_most_visualised || []
@@n_views = learning_object_repository.get_number_of("Views") || []
end
def views
@n_views = main_page_repository.get_number_of("Views")
end
end
......@@ -7,12 +7,12 @@ module OrientDb
#get the ten most visualised. It's probably making too many useless accesses to orientDB...
def get_most_visualised
result = connection.query("SELECT FROM (SELECT @rid,in('Views').size() AS views FROM LearningObject) ORDER BY views DESC LIMIT 10")
most_visualised = []
result.each do |result|
most_visualised.push(get_by_rid(result["rid"]))
end
build_objects most_visualised
result = connection.query("SELECT FROM (SELECT name, @rid,in('Views').size() AS views FROM LearningObject) ORDER BY views DESC LIMIT 10")
#most_visualised = []
#result.each do |result|
# most_visualised.push(get_by_rid(result["rid"]))
#end
#build_objects most_visualised
end
def get_publisher(learning_object)
......
......@@ -14,13 +14,17 @@
<div id="sending-stats" class="row">
<div class="col-sm-6 col-md-12">
<div class="ls-box">
<h6 class="ls-title-6">Total</h6>
<strong class="ls-color-theme">2091</strong>
<h6 class="ls-title-6">Total de acessos dos usuários</h6>
<strong class="ls-color-theme"><%= @total_accesses %></strong>
</div>
</div>
</div>
</div>
<!-- Gráfico ainda não populado
<div align="center">
<canvas id="accesses" width="400" height="350"></canvas>
</div>
-->
......@@ -14,7 +14,7 @@
<div class="col-sm-6 col-md-12">
<div class="ls-box">
<h6 class="ls-title-6">Total</h6>
<strong class="ls-color-theme">348</strong>
<strong class="ls-color-theme"><%= @n_collections %></strong>
</div>
</div>
</div>
......@@ -25,7 +25,9 @@
Por Área do conhecimento
</div>
<br>
<!-- Gráfico ainda não populado
<div align="center">
<canvas id="colections" width="400" height="350"></canvas>
</div>
-->
......@@ -39,8 +39,8 @@
</div>
<div class="col-sm-6 col-md-3">
<div class="ls-box">
<h6 class="ls-title-4 ">Objetos não visualizados</h6>
<strong class="ls-color-theme"><%= @n_non_visualised %></strong>
<h6 class="ls-title-4 ">Acessos</h6>
<strong class="ls-color-theme"><%= @total_accesses %></strong>
<%= link_to "Mais detalhes" , accesses_management_statistics_path, class: "ls-btn ls-btn-sm" %>
</div>
......
......@@ -36,10 +36,13 @@
</div>
</div>
<input type="hidden" id="lobject" value="<%= @n_learning_objects - @n_non_visualised %>"/>
<input type="hidden" id="lobject_non" value="<%= @n_non_visualised %>"/>
<div>
<div style="float: left; margin-left: 85px; margin-top: 100px">
<canvas id="learning_objects" width="700" height="600"></canvas>
......@@ -49,7 +52,8 @@
<h3><th><b> 10 mais visualisados </b></th></h3><br>
<div class="row learning-object-columns">
<% @most_visualised.each do |most| %>
<%= render_learning_object("vertical", most) %>
<%#= render_learning_object("vertical", most) %>
<li><%= link_to most["name"], learning_object_path(most["@rid"]) %></li><BR>
<% end %>
</div>
</div>
......
......@@ -14,53 +14,35 @@
<div class="col-sm-6 col-md-12">
<div class="ls-box">
<h6 class="ls-title-6">Total</h6>
<strong class="ls-color-theme">70</strong>
<strong class="ls-color-theme"><%=@n_users%></strong>
<!--<small>envios por mês</small>-->
<%#= link_to "Mais detalhes" , management_statistics_users_path, class: "ls-btn ls-btn-sm" %>
</div>
</div>
<div class="col-sm-6 col-md-3">
<div class="ls-box">
<h6 class="ls-title-4">Estudantes</h6>
<strong class="ls-color-theme">20</strong>
<%#= link_to "Mais detalhes" , management_statistics_colections_path, class: "ls-btn ls-btn-sm" %>
</div>
</div>
<div class="col-sm-6 col-md-2">
<div class="col-sm-6 col-md-4">
<div class="ls-box">
<h6 class="ls-title-4">Professores</h6>
<strong class="ls-color-theme">42</strong>
<strong class="ls-color-theme"><%=@n_teachers%></strong>
<%#= link_to "Mais detalhes" , management_statistics_downloads_path, class: "ls-btn ls-btn-sm" %>
</div>
</div>
<div class="col-sm-6 col-md-2">
<div class="col-sm-6 col-md-4">
<div class="ls-box">
<h6 class="ls-title-4 ">Curadores</h6>
<strong class="ls-color-theme">4</strong>
<strong class="ls-color-theme"><%=@n_curators%></strong>
<%#= link_to "Mais detalhes" , management_statistics_acessos_path, class: "ls-btn ls-btn-sm" %>
</div>
</div>
<div class="col-sm-6 col-md-2">
<div class="ls-box">
<h6 class="ls-title-4 ">Moderadores</h6>
<strong class="ls-color-theme">3</strong>
<%#= link_to "Mais detalhes" , management_statistics_acessos_path, class: "ls-btn ls-btn-sm" %>
</div>
</div>
<div class="col-sm-6 col-md-3">
<div class="col-sm-6 col-md-4">
<div class="ls-box">
<h6 class="ls-title-4 ">Administradores</h6>
<strong class="ls-color-theme">1</strong>
<strong class="ls-color-theme"><%=@n_admins%></strong>
</div>
</div>
......@@ -81,6 +63,9 @@
</div>
</div>
<input type="hidden" id="n_teachers" value="<%= @n_teachers %>"/>
<input type="hidden" id="n_curators" value="<%= @n_curators %>"/>
<input type="hidden" id="n_admins" value="<%= @n_admins %>"/>
<div align="center">
<canvas id="users" width="400" height="350"> </canvas>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment