Commit 58a210f6 authored by Bruno Meyer's avatar Bruno Meyer 😢

Merge branch '50-corrigir-tabela-csv' into 'master'

Resolve "Corrigir tabela csv"

Closes #50

See merge request !21
parents 59a0863f 16b39e5e
......@@ -201,54 +201,202 @@ function downloadCsv(){
for (var teste in dataSet){
tempos.push(buscaTempoResposta(dataSet[teste].stringResposta[0]));
}
console.log(dataSet);
var data = tempos;
var csvContent = "data:text/csv;charset=utf-8,";
for(var i in dataSet){
csvContent += dataSet[i].nome+" - "+dataSet[i].grupo+","
}
csvContent+="\n";
if(dataSet.length < 1){
alert("Não há nenhum teste registrado!");
return;
}
ordemFiltrada = filtraOrdemBateria(dataSet[0].ordemBateria);
lines = [];
for(var i = 0; i < ordemFiltrada.length+ordemFiltrada.length; i++){
for(var j in dataSet[0].stringResposta[0]){
lines.push("");
function scpAspas(t){
return "\""+t+"\"";
}
var tabela = [];
tabela.push([]);
tabela[0][0] = "\"\"";
var congruenteIndex = [];
var incongruenteIndex = [];
for(i in ordemFiltrada){
if(ordemFiltrada[i] == "C"){
congruenteIndex.push(parseInt(i));
//tabela[0].push(","+scapeAspasSimples(ordemFiltrada[i]));
}
if(ordemFiltrada[i] == "I"){
incongruenteIndex.push(parseInt(i));
}
}
var numCongruentes = congruenteIndex.length;
var numIncongruentes = incongruenteIndex.length;
for(var i = 0; i < numCongruentes; i++){
tabela[0].push(",\"C "+(i+1)+"\"");
}
tabela[0].push(",\"Média C\",\"Dev Pad C\", \"Erro C\", \"Acertos C\"");
for(var i = 0; i < numCongruentes; i++){
tabela[0].push(",\"C M"+(i+1)+"\"");
}
tabela[0].push(",\"Média C M \",\"Dev Pad C M\", \"Erro C M\", \"Acertos C M\"");
for(var i = 0; i < numIncongruentes; i++){
tabela[0].push(",\"I "+(i+1)+"\"");
}
tabela[0].push(",\"Média I\",\"Dev Pad I\", \"Erro I\", \"Acertos I\"");
for(var i = 0; i < numIncongruentes; i++){
tabela[0].push(",\"I M"+(i+1)+"\"");
}
tabela[0].push(",\"Média I M \",\"Dev Pad I M\", \"Erro I M\", \"Acertos I M\"");
var dicionario = {}
for(var i in dataSet){
for(var j in dataSet[i].stringResposta){
j = parseInt(j);
if(ordemFiltrada[j]=="C"){
lineIndex = parseInt(j*dataSet[i].stringResposta[j].length)+j;
lines[lineIndex]+="Congruente,";
if(dataSet[i].nome in dicionario){
dicionario[dataSet[i].nome].push(dataSet[i]);
}
else{
dicionario[dataSet[i].nome] = [dataSet[i]];
}
}
function mediaTeste(teste){
var acertos = 0;
var soma = 0;
for(var i in teste){
if(teste[i].acertou){
soma+=parseFloat(teste[i].tempo);
acertos++;
}
if(ordemFiltrada[j]=="I"){
lineIndex = parseInt(j*dataSet[i].stringResposta[j].length)+j;
lines[lineIndex]+="Incongruente,";
//console.log(teste[i]);
}
var media = 0;
if(acertos > 0){
media = (soma/acertos);
}
return {media: media, acertos: acertos};
}
for(p in dicionario){
var line = [p];
var pessoa = dicionario[p];
var acertosTotais = 0;
for(b in pessoa){
var bateria = pessoa[b];
if(bateria.grupo == 1){
for(var j in congruenteIndex){
var index = congruenteIndex[j];
media = mediaTeste(bateria.stringResposta[index]);
acertosTotais+=media.acertos;
line.push(","+scpAspas(media.media))
}
}
for(var k in dataSet[i].stringResposta[j]){
lineIndex = parseInt(j*dataSet[i].stringResposta[j].length) + parseInt(k);
lineIndex=parseInt(lineIndex)+1+parseInt(j);
if(dataSet[i].stringResposta[j][k].acertou)
lines[lineIndex]+="Acerto - ";
else
lines[lineIndex]+="Erro - ";
lines[lineIndex] +=(dataSet[i].stringResposta[j][k].tempo+",");
}
line.push(",\"\""); //media
line.push(",\"\""); //desvio padrao
line.push(",\"\""); //erro
line.push(","+scpAspas(acertosTotais));
tabela.push(line);
}
var i = 1;
for(p in dicionario){
var pessoa = dicionario[p];
var acertosTotais = 0;
for(b in pessoa){
var bateria = pessoa[b];
if(bateria.grupo == 2){
for(var j in congruenteIndex){
var index = congruenteIndex[j];
media = mediaTeste(bateria.stringResposta[index]);
acertosTotais+=media.acertos;
tabela[i].push(","+scpAspas(media.media))
}
}
}
tabela[i].push(",\"\""); //media
tabela[i].push(",\"\""); //desvio padrao
tabela[i].push(",\"\""); //erro
tabela[i].push(","+scpAspas(acertosTotais));
i++;
}
csvContent += lines.join("\n");
var i = 1;
for(p in dicionario){
var pessoa = dicionario[p];
var acertosTotais = 0;
for(b in pessoa){
var bateria = pessoa[b];
if(bateria.grupo == 1){
for(var j in incongruenteIndex){
var index = incongruenteIndex[j];
media = mediaTeste(bateria.stringResposta[index]);
acertosTotais+=media.acertos;
tabela[i].push(","+scpAspas(media.media));
}
}
}
tabela[i].push(",\"\""); //media
tabela[i].push(",\"\""); //desvio padrao
tabela[i].push(",\"\""); //erro
tabela[i].push(","+scpAspas(acertosTotais));
i++;
}
var i = 1;
for(p in dicionario){
var pessoa = dicionario[p];
var acertosTotais = 0;
for(b in pessoa){
var bateria = pessoa[b];
if(bateria.grupo == 2){
for(var j in incongruenteIndex){
var index = incongruenteIndex[j];
media = mediaTeste(bateria.stringResposta[index]);
acertosTotais+=media.acertos;
tabela[i].push(","+scpAspas(media.media))
}
}
}
tabela[i].push(",\"\""); //media
tabela[i].push(",\"\""); //desvio padrao
tabela[i].push(",\"\""); //erro
tabela[i].push(","+scpAspas(acertosTotais));
i++;
}
for(var l in tabela){
csvContent+= tabela[l].join("")+"\n";
}
var encodedUri = encodeURI(csvContent);
var link = document.createElement("a");
......
......@@ -104,8 +104,7 @@ function filtraOrdemBateria(array){
//Imprime na tela o conteúdo referente a aba de gerencia de testes
function abre_informacao_teste(obj){
mediaC=0;
mediaI=0;
if(objeto_ativo == obj){
desativa_objeto_ativo();
return;
......@@ -117,7 +116,7 @@ function abre_informacao_teste(obj){
obj.innerHTML+= dados[1*obj.getAttribute("id_teste")].nome+"<br>";
obj.innerHTML+= "Grupo "+dados[1*obj.getAttribute("id_teste")].grupo+"<br>";
ordemFiltrada = filtraOrdemBateria(dados[1*obj.getAttribute("id_teste")].ordemBateria);
//Para cada resposta de cada teste
for(var i = 0; i < dados[1*obj.getAttribute("id_teste")].stringResposta.length; i++){
......@@ -128,7 +127,10 @@ function abre_informacao_teste(obj){
if(ordemFiltrada[i] == "I")
obj.innerHTML+="Incongruente";
obj.innerHTML+="<br>"
obj.innerHTML+="<br>";
var mediaC=0;
var mediaI=0;
var acertos = 0;
for(var j = 0; j < dados[1*obj.getAttribute("id_teste")].stringResposta[i].length; j++){
/*Escreve na tela ( em forma de botões ) se a pessoa acertou, e o seu tempo, alterando a classe de cada uma para :
- spanAcertou
......@@ -137,27 +139,28 @@ function abre_informacao_teste(obj){
if(dados[1*obj.getAttribute("id_teste")].stringResposta[i][j].acertou == "1"){
obj.innerHTML += "<span class=spanAcertou>" + dados[1*obj.getAttribute("id_teste")].stringResposta[i][j].tempo+"</span><br>";
if(ordemFiltrada[i] == "C"){
mediaC = parseFloat(mediaC) + parseFloat(dados[1*obj.getAttribute("id_teste")].stringResposta[i][j].tempo);
}
else{
mediaI = parseFloat(mediaI) + parseFloat(dados[1*obj.getAttribute("id_teste")].stringResposta[i][j].tempo);
}
acertos++;
}
else{
obj.innerHTML += "<span class=spanErrou>" + dados[1*obj.getAttribute("id_teste")].stringResposta[i][j].tempo+"</span><br>";
}
if(ordemFiltrada[i] == "C")
{
mediaC = parseFloat(mediaC) + parseFloat(dados[1*obj.getAttribute("id_teste")].stringResposta[i][j].tempo);
}
else {
mediaI = parseFloat(mediaI) + parseFloat(dados[1*obj.getAttribute("id_teste")].stringResposta[i][j].tempo);
}
}
if(mediaI == 0)
{
obj.innerHTML += "<br>Média Congruente<br>";
mediaC = parseFloat(mediaC) / parseFloat(dados[1*obj.getAttribute("id_teste")].stringResposta[i].length);
mediaC = parseFloat(mediaC) / acertos;
obj.innerHTML += "<span class=spanAcertou>" + parseFloat(mediaC.toFixed(2))+"</span><br>";
}
else {
obj.innerHTML += "<br>Média Incongruente<br>";
mediaI = parseFloat(mediaI) / parseFloat(dados[1*obj.getAttribute("id_teste")].stringResposta[i].length);
mediaI = parseFloat(mediaI) / acertos;
obj.innerHTML += "<span class=spanAcertou>" + parseFloat(mediaI.toFixed(2))+"</span><br>";
}
desvioPadrao = 0;
......@@ -176,8 +179,8 @@ function abre_informacao_teste(obj){
obj.innerHTML += "<br>Desvio Padrão<br>";
obj.innerHTML += "<span class=spanAcertou>" + parseFloat(desvioPadrao.toFixed(2))+"</span><br>";
if(j < dados[1*obj.getAttribute("id_teste")].stringResposta[i].length-1)
obj.innerHTML +="<br>";
if(j < dados[1*obj.getAttribute("id_teste")].stringResposta[i].length-1)
obj.innerHTML +="<br>";
}
......
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 to comment