Commit 83d61be6 by Jose Antonio

reports - show working sessions

parent fc4e3268
...@@ -117,14 +117,14 @@ dashboardControllers.controller('StudentReportsCtrl', function StudentReportsCtr ...@@ -117,14 +117,14 @@ dashboardControllers.controller('StudentReportsCtrl', function StudentReportsCtr
"broken":0, "null":0 "broken":0, "null":0
}; };
$scope.method_chart_dates = []; // [2010-02....] $scope.method_chart_dates=[[]];
$scope.error_rate_rate = []; // [33.3, ...] $scope.error_rate_rate = [[]];
$scope.average_time_trie = []; // [3, 4,...] seconds $scope.average_time_trie = [[]];
$scope.average_time_pictos = []; $scope.average_time_pictos = [[]];
$scope.vocab_size = []; $scope.vocab_size = [[]];
$scope.vocab_size_aux = []; $scope.vocab_size_aux = [];
$scope.phrase_average_time= []; $scope.phrase_average_time = [[]];
$scope.phrase_average_size = []; $scope.phrase_average_size = [[]];
if(selected_method.class === "method-opt"){ if(selected_method.class === "method-opt"){
//check the selected method //check the selected method
...@@ -139,29 +139,13 @@ dashboardControllers.controller('StudentReportsCtrl', function StudentReportsCtr ...@@ -139,29 +139,13 @@ dashboardControllers.controller('StudentReportsCtrl', function StudentReportsCtr
} }
//There is a method selected //There is a method selected
//Get the selected method/s instructions by date //Get the selected method/s instructions by date
$scope.method_chart_dates=[[]];
$scope.error_rate_rate = [[]];
$scope.average_time_trie = [[]];
$scope.average_time_pictos = [[]];
$scope.vocab_size = [[]];
$scope.phrase_average_time = [[]];
$scope.phrase_average_size = [[]];
for(var i=0; i < $scope.statistic_methods.length; i++){ for(var i=0; i < $scope.statistic_methods.length; i++){
for(var j=0; j < $scope.statistic_methods[i].instructions.length; j++){ for(var j=0; j < $scope.statistic_methods[i].instructions.length; j++){
if(new Date($scope.statistic_methods[i].instructions[j].begin).getTime() > $scope.reportDateSince.getTime() if(new Date($scope.statistic_methods[i].instructions[j].begin).getTime() > $scope.reportDateSince.getTime()
&& new Date($scope.statistic_methods[i].instructions[j].begin).getTime() < $scope.reportDateTo.getTime()){ && new Date($scope.statistic_methods[i].instructions[j].begin).getTime() < $scope.reportDateTo.getTime()){
//llamar a la funcion estadisticas con esta instruccion //llamar a la funcion estadisticas con esta instruccion
var statistics = statistics_instruction(j, i); var statistics = statistics_instruction(j, i);
$scope.error_rate_rate[0].push(statistics[7]);
$scope.average_time_trie[0].push(statistics[8]);
$scope.average_time_pictos[0].push(statistics[9]);
$scope.vocab_size[0].push(statistics[10]);
$scope.phrase_average_time[0].push(statistics[11]);
$scope.phrase_average_size[0].push(statistics[12]);
$scope.method_chart_dates[0].push(moment($scope.statistic_methods[i].instructions[j].begin).format("YYYY-MM-DD"));
// $scope.error_rate_rate[0].push(statistics_instruction(j, i)[2].error_rate);
// $scope.error_rate_dates[0].push(moment($scope.statistic_methods[i].instructions[j].begin).format("YYYY-MM-DD"));
} }
} }
} }
...@@ -184,14 +168,6 @@ dashboardControllers.controller('StudentReportsCtrl', function StudentReportsCtr ...@@ -184,14 +168,6 @@ dashboardControllers.controller('StudentReportsCtrl', function StudentReportsCtr
if(new Date($scope.statistic_methods[0].instructions[j].begin).getTime() > $scope.reportDateSince.getTime() if(new Date($scope.statistic_methods[0].instructions[j].begin).getTime() > $scope.reportDateSince.getTime()
&& new Date($scope.statistic_methods[0].instructions[j].begin).getTime() < $scope.reportDateTo.getTime()){ && new Date($scope.statistic_methods[0].instructions[j].begin).getTime() < $scope.reportDateTo.getTime()){
var statistics = statistics_instruction(j, 0); var statistics = statistics_instruction(j, 0);
$scope.error_rate_rate.push(statistics[1]);
$scope.method_chart_dates.push(statistics[0]);
$scope.average_time_trie.push(statistics[2]);
$scope.average_time_pictos.push(statistics[3]);
$scope.vocab_size.push(statistics[4]);
$scope.phrase_average_time.push(statistics[5]);
$scope.phrase_average_size.push(statistics[6]);
} }
} }
} }
...@@ -359,24 +335,8 @@ dashboardControllers.controller('StudentReportsCtrl', function StudentReportsCtr ...@@ -359,24 +335,8 @@ dashboardControllers.controller('StudentReportsCtrl', function StudentReportsCtr
* Instruction selected * Instruction selected
* method_pos is the position of the method in $scope.statistic_methods * method_pos is the position of the method in $scope.statistic_methods
* instruction_pos is the position of the instruction in $scope.statistic_methods * instruction_pos is the position of the instruction in $scope.statistic_methods
* return instruction_statistic [
[tries dates],
[tries error rate],
[tries average time],
[average_time_between_pictos_ws],
[vocab_size_ws],
[phrase_average_build_time],
[phrase_average_size],
[instruction error_rate],
[instruction tries average time],
[instruction average_time_between_pictos],
[instruction_vocab_size],
[instruction_phrase_average_build_time],
[instruction_phrase_average_size]
]
*/ */
function statistics_instruction(instruction_pos, method_pos){ function statistics_instruction(instruction_pos, method_pos){
var instruction_statistic = [[],[], [],[],[],[],[], 0, 0, 0, 0,0,0];
var working_sessions=[]; var working_sessions=[];
//Get the selected instruction's working sessions by date //Get the selected instruction's working sessions by date
...@@ -389,9 +349,6 @@ dashboardControllers.controller('StudentReportsCtrl', function StudentReportsCtr ...@@ -389,9 +349,6 @@ dashboardControllers.controller('StudentReportsCtrl', function StudentReportsCtr
} }
} }
var instruction_error_rate = 0;
var instruction_tries_average_time = 0;
var instruction_pictos_average_time = 0;
var instruction_phrase_average_size = 0; var instruction_phrase_average_size = 0;
var instruction_phrase_average_build_time = 0; var instruction_phrase_average_build_time = 0;
for(var i=0; i < working_sessions.length; i++){ for(var i=0; i < working_sessions.length; i++){
...@@ -438,7 +395,6 @@ dashboardControllers.controller('StudentReportsCtrl', function StudentReportsCtr ...@@ -438,7 +395,6 @@ dashboardControllers.controller('StudentReportsCtrl', function StudentReportsCtr
if(working_sessions[i].tries[j].actions.length > 0){ if(working_sessions[i].tries[j].actions.length > 0){
var average_time_pictos_action = 0; var average_time_pictos_action = 0;
var phrase_average_size_action = 0;
var before = moment(new Date(working_sessions[i].tries[j].actions[0].timestamp),"DD/MM/YYYY HH:mm:ss"); var before = moment(new Date(working_sessions[i].tries[j].actions[0].timestamp),"DD/MM/YYYY HH:mm:ss");
for(var k = 1; k < working_sessions[i].tries[j].actions.length; k++){ for(var k = 1; k < working_sessions[i].tries[j].actions.length; k++){
...@@ -468,42 +424,27 @@ dashboardControllers.controller('StudentReportsCtrl', function StudentReportsCtr ...@@ -468,42 +424,27 @@ dashboardControllers.controller('StudentReportsCtrl', function StudentReportsCtr
miliseconds = moment.duration(dif).asMilliseconds(); miliseconds = moment.duration(dif).asMilliseconds();
phrase_average_build_time += miliseconds; phrase_average_build_time += miliseconds;
} }
phrase_average_size += count_pictos; phrase_average_size += count_pictos;
} }
} }
average_time_pictos_ws += average_time_pictos_action / working_sessions[i].tries[j].actions.length; average_time_pictos_ws += average_time_pictos_action / working_sessions[i].tries[j].actions.length;
} }
} }
$scope.tries_count["total"]+=working_sessions[i].tries.length; $scope.tries_count["total"]+=working_sessions[i].tries.length;
error_rate = success / working_sessions[i].tries.length; error_rate = success / working_sessions[i].tries.length;
instruction_error_rate += error_rate;
tries_average_time = tries_average_time / working_sessions[i].tries.length; //average time per trie per ws tries_average_time = tries_average_time / working_sessions[i].tries.length; //average time per trie per ws
instruction_tries_average_time += tries_average_time;
average_time_pictos_ws = average_time_pictos_ws / working_sessions[i].tries.length; average_time_pictos_ws = average_time_pictos_ws / working_sessions[i].tries.length;
instruction_pictos_average_time += average_time_pictos_ws; phrase_average_build_time = phrase_average_build_time / success; //milliseconds
phrase_average_build_time = phrase_average_build_time / working_sessions[i].tries.length; //milliseconds phrase_average_size = phrase_average_size / success;
instruction_phrase_average_build_time += phrase_average_build_time; //milliseconds
phrase_average_size = phrase_average_size / working_sessions[i].tries.length; $scope.method_chart_dates[0].push(moment(working_sessions[i].begin).format("YYYY-MM-DD")); //https://github.com/moment/moment/issues/1407
instruction_phrase_average_size += phrase_average_size; $scope.error_rate_rate[0].push(round((1-error_rate) * 100, 2));
$scope.average_time_trie[0].push(round(moment.duration(tries_average_time).asSeconds(),2));
instruction_statistic[0].push(moment(working_sessions[i].begin).format("YYYY-MM-DD")); //https://github.com/moment/moment/issues/1407 $scope.average_time_pictos[0].push(round(moment.duration(average_time_pictos_ws).asSeconds(), 2));
instruction_statistic[1].push(round((1-error_rate) * 100, 2)); $scope.vocab_size[0].push($scope.vocab_size_aux.length);
instruction_statistic[2].push(round(moment.duration(tries_average_time).asSeconds(),2)); $scope.phrase_average_time[0].push(round(moment.duration(phrase_average_build_time).asSeconds(),2));
instruction_statistic[3].push(round(moment.duration(average_time_pictos_ws).asSeconds(), 2)); $scope.phrase_average_size[0].push(phrase_average_size);
instruction_statistic[4].push($scope.vocab_size_aux.length);
instruction_statistic[5].push(round(moment.duration(phrase_average_build_time).asSeconds(),2));
instruction_statistic[6].push(phrase_average_size);
} }
instruction_statistic[7] = round(((1 - instruction_error_rate) / working_sessions.length) * 100, 2);
instruction_statistic[8] = round(moment.duration(instruction_tries_average_time / working_sessions.length ).asSeconds() , 2);
instruction_statistic[9] = round(moment.duration(instruction_pictos_average_time / working_sessions.length ).asSeconds(), 2);
instruction_statistic[10] = $scope.vocab_size_aux.length;
instruction_statistic[11] = round(moment.duration(instruction_phrase_average_build_time / working_sessions.length ).asSeconds(), 2);
instruction_statistic[12] = round(instruction_phrase_average_size / working_sessions.length, 2);
return instruction_statistic;
} }
function round(number, places) { function round(number, places) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment