Commit 48d1702c by Fernando Martínez Santiago

Merge branch 'develop' of http://gitlab.ujaen.es/yotta/pictogram into develop

parents bb4533ed 64ca3265
...@@ -48,8 +48,6 @@ dashboardControllers.controller('StudentReportsCtrl', function StudentReportsCtr ...@@ -48,8 +48,6 @@ dashboardControllers.controller('StudentReportsCtrl', function StudentReportsCtr
var tsvData = ""; var tsvData = "";
const SEPARATOR = '\t'; const SEPARATOR = '\t';
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
// //
// OBTENCIÓN DE LOS DATOS // OBTENCIÓN DE LOS DATOS
...@@ -60,21 +58,46 @@ dashboardControllers.controller('StudentReportsCtrl', function StudentReportsCtr ...@@ -60,21 +58,46 @@ dashboardControllers.controller('StudentReportsCtrl', function StudentReportsCtr
.get(config.backend+'/stu/'+ $scope.studentData.id +'/tries') .get(config.backend+'/stu/'+ $scope.studentData.id +'/tries')
.success(function(data) { .success(function(data) {
$scope.fulldata = data; $scope.fulldata = data;
tsvData = "method" + SEPARATOR + "instruction" + SEPARATOR + "instruction_begin" + SEPARATOR + "instruction_end" + SEPARATOR + "session_begin" + SEPARATOR + "session_end" + SEPARATOR + "try_begin" + SEPARATOR + "try_end" + SEPARATOR + "action" + SEPARATOR + "action_timestamp" + SEPARATOR + "action_expression\n";
for(var i =0; i<data.methods.length; i++){ for(var i =0; i<data.methods.length; i++){
$scope.elems.push({id:data.methods[i].id, class:"method-opt", name: data.methods[i].name}); $scope.elems.push({id:data.methods[i].id, class:"method-opt", name: data.methods[i].name});
for(var j=0; j<data.methods[i].instructions.length; j++){ for(var j=0; j<data.methods[i].instructions.length; j++){
if (data.methods[i].instructions[j].working_sessions) { if (data.methods[i].instructions[j].working_sessions) {
$scope.elems.push({id:data.methods[i].instructions[j].id, $scope.elems.push({id:data.methods[i].instructions[j].id,
class:"instruction-opt", name: "- - "+data.methods[i].instructions[j].name, id_method: data.methods[i].id}); class:"instruction-opt", name: "- - "+data.methods[i].instructions[j].name, id_method: data.methods[i].id});
for(var k=0; k<data.methods[i].instructions[j].working_sessions.length; k++) }
for(var l=0; l<data.methods[i].instructions[j].working_sessions[k].tries.length; l++) }
for(var m=0; m<data.methods[i].instructions[j].working_sessions[k].tries[l].actions.length; m++) { }
$scope.filter();
})
.error(function(data, status, headers, config) {
console.log("Error from API: " + data.error);
});
/**
* Generates TSV data
*/
$scope.genTSV = function() {
var method_filter = -1;
if ($scope.selected_method != '-1')
method_filter = JSON.parse($scope.selected_method);
tsvData = "method" + SEPARATOR + "instruction" + SEPARATOR + "instruction_begin" + SEPARATOR + "instruction_end" + SEPARATOR + "session_begin" + SEPARATOR + "session_end" + SEPARATOR + "try_begin" + SEPARATOR + "try_end" + SEPARATOR + "try_result" + SEPARATOR + "action" + SEPARATOR + "action_timestamp" + SEPARATOR + "action_expression\n";
var data = $scope.fulldata;
for (var i =0; i<data.methods.length; i++) {
for (var j=0; j<data.methods[i].instructions.length; j++) {
if (data.methods[i].instructions[j].working_sessions) {
for (var k=0; k<data.methods[i].instructions[j].working_sessions.length; k++) {
for (var l=0; l<data.methods[i].instructions[j].working_sessions[k].tries.length; l++) {
for (var m=0; m<data.methods[i].instructions[j].working_sessions[k].tries[l].actions.length; m++) {
if (new Date(data.methods[i].instructions[j].working_sessions[k].begin).getTime() > $scope.reportDateSince.getTime() &&
new Date(data.methods[i].instructions[j].working_sessions[k].begin).getTime() < $scope.reportDateTo.getTime() &&
(method_filter == -1 ||
(method_filter.class === "method-opt" && data.methods[i].id == method_filter.id) ||
(method_filter.class === "instruction-opt" && data.methods[i].instructions[j].id == method_filter.id))) {
var expression = ""; var expression = "";
if (data.methods[i].instructions[j].working_sessions[k].tries[l].actions[m].description && if (data.methods[i].instructions[j].working_sessions[k].tries[l].actions[m].description &&
data.methods[i].instructions[j].working_sessions[k].tries[l].actions[m].description.attributes && data.methods[i].instructions[j].working_sessions[k].tries[l].actions[m].description.attributes &&
data.methods[i].instructions[j].working_sessions[k].tries[l].actions[m].description.attributes.expression) data.methods[i].instructions[j].working_sessions[k].tries[l].actions[m].description.attributes.expression)
expression = data.methods[i].instructions[j].working_sessions[k].tries[l].actions[m].description.attributes.expression; expression = data.methods[i].instructions[j].working_sessions[k].tries[l].actions[m].description.attributes.expression;
tsvData += tsvData +=
data.methods[i].name + SEPARATOR + data.methods[i].name + SEPARATOR +
data.methods[i].instructions[j].name + SEPARATOR + data.methods[i].instructions[j].name + SEPARATOR +
...@@ -84,20 +107,20 @@ dashboardControllers.controller('StudentReportsCtrl', function StudentReportsCtr ...@@ -84,20 +107,20 @@ dashboardControllers.controller('StudentReportsCtrl', function StudentReportsCtr
data.methods[i].instructions[j].working_sessions[k].end + SEPARATOR + data.methods[i].instructions[j].working_sessions[k].end + SEPARATOR +
data.methods[i].instructions[j].working_sessions[k].tries[l].begin + SEPARATOR + data.methods[i].instructions[j].working_sessions[k].tries[l].begin + SEPARATOR +
data.methods[i].instructions[j].working_sessions[k].tries[l].end + SEPARATOR + data.methods[i].instructions[j].working_sessions[k].tries[l].end + SEPARATOR +
data.methods[i].instructions[j].working_sessions[k].tries[l].result + SEPARATOR +
data.methods[i].instructions[j].working_sessions[k].tries[l].actions[m].type + SEPARATOR + data.methods[i].instructions[j].working_sessions[k].tries[l].actions[m].type + SEPARATOR +
data.methods[i].instructions[j].working_sessions[k].tries[l].actions[m].timestamp + SEPARATOR + expression + '\n'; data.methods[i].instructions[j].working_sessions[k].tries[l].actions[m].timestamp + SEPARATOR + expression + '\n';
} }
}
}
} }
} }
} }
$scope.filter(); }
}) };
.error(function(data, status, headers, config) {
console.log("Error from API: " + data.error);
});
/** /**
* Download data in CSV format * Download data in TSV format
*/ */
$scope.download = function() { $scope.download = function() {
var data = new Blob([tsvData], { type: 'text/plain;charset=utf-8' }); var data = new Blob([tsvData], { type: 'text/plain;charset=utf-8' });
...@@ -137,7 +160,8 @@ dashboardControllers.controller('StudentReportsCtrl', function StudentReportsCtr ...@@ -137,7 +160,8 @@ dashboardControllers.controller('StudentReportsCtrl', function StudentReportsCtr
$scope.printName=JSON.parse($scope.selected_method).name; $scope.printName=JSON.parse($scope.selected_method).name;
$scope.statistics(JSON.parse($scope.selected_method)); $scope.statistics(JSON.parse($scope.selected_method));
} }
// regeneramos TSV
$scope.genTSV();
}; };
//Statistics generation //Statistics generation
......
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