Commit afe2e068 authored by Odair M.'s avatar Odair M.

Merge branch '164-corrigir-erros-ortograficos-e-semanticos' into 'development'

Resolve "Corrigir erros ortográficos e semânticos"

Closes #164

See merge request adega/adega!68
parents caa2675a 7dcf0b64
Pipeline #19596 passed with stage
in 2 minutes and 17 seconds
......@@ -80,6 +80,9 @@ TEMPLATES = [
'django.contrib.messages.context_processors.messages',
'django.template.context_processors.media',
],
'libraries':{
'adega_templatetag': 'adega.templatetags.adega_templatetag',
}
},
},
]
......
......@@ -55,10 +55,10 @@ h1#title {
/* ========================================= FOOTER */
footer {
background-color: #263646;
border-top: 4px solid #31c2e4;
padding-top: 20px;
padding-bottom: 20px;
background-color: #132940;
/* border-top: 1px solid #001a2054; */
padding-top: 10px;
padding-bottom: 10px;
color: #FFF;
}
......@@ -83,10 +83,19 @@ footer h3 {
.sidebar {
transition: all 0.5s ease-in-out;
padding: 0;
background-color: #2f4861;
background-color: #132940;
min-height: 100%;
}
.navbar {
transition: all 0.5s ease-in-out;
background-color: #132940;
}
.sidebar > li > .dropdown-menu { background-color:#1a2c3f; }
.sidebar > li > a { background-color:#1a2c3f; }
.sidebar > li > button { background-color:#1a2c3f; }
.sidebar ul {
list-style:none;
margin:0;
......
......@@ -128,14 +128,23 @@ class AdegaChart{
}
var layout = {
legend: {
orientation: "h",
yanchor: "top",
valign: "top",
y: 1.1,
x: 0
},
title: this.title,
showlegend: true,
xaxis:{
title:this.xaxis_title
title:this.xaxis_title,
automargin: true
},
yaxis: {
title: this.yaxis_title,
rangemode: 'tozero'
rangemode: 'tozero',
automargin: true
// overlaying: 'y'
},
yaxis2: {
......@@ -146,6 +155,7 @@ class AdegaChart{
side: 'right',
rangemode: 'tozero',
title: this.yaxis2_title,
automargin: true
},
barmode: this.barmode
};
......
<nav class="navbar navbar-expand-lg navbar-dark bg-primary navbar-inverse">
<nav class="navbar navbar-expand-lg navbar-dark navbar-inverse">
<div class="container-fluid">
<div class="navbar-header">
<ul class="nav navbar-nav navbar-left">
......
<ul class="navbar-nav">
<ul class="sidebar">
<!-- <li class="nav-item"><a class="btn-primary text-left" href="{% url 'submission:SubmissionListView' %}">Gerenciar relatórios</a></li class="nav-item"> -->
<li class="nav-item"><a class="btn-primary text-left" href="{% url 'degree:index' submission_id=submission.id%}">Informações gerais do curso</a></li class="nav-item">
<li class="nav-item"><a class="btn-primary text-left" href="{% url 'student:index' submission_id=submission.id%}">Alunos</a></li class="nav-item">
<li class="nav-item dropdown dropright">
<a type="button" class="btn-primary" href="{% url 'course:index' submission_id=submission.id%}">Disciplinas</a>
<button type="button" class="left btn btn-primary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" >
<button id="dropdown_compare" type="button" class="left btn btn-primary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true" >
</button>
<dropdown class="dropdown-menu">
<dropdown class="dropdown-menu" aria-labelledby="dropdown_compare">
<a class="dropdown-item" href="{% url 'course:compare' submission_id=submission.id %}">
Comparação
</a>
......
......@@ -61,15 +61,15 @@
<div class="col-md-4">
<h3>Links</h3>
<ul>
<li><a href="http://pet.inf.ufpr.br/projetos/adega.html">Página oficial do projeto</a></li>
<li><a href="http://gitlab.c3sl.ufpr.br/pet/adega">Código fonte</a></li>
<li><a href="#">Desenvolvedores</a></li>
<li><a href="http://pet.inf.ufpr.br/doku.php?id=adega">Página oficial do projeto</a></li>
<li><a href="https://gitlab.c3sl.ufpr.br/adega/adega">Código fonte</a></li>
<!-- <li><a href="#">Desenvolvedores</a></li> -->
</ul>
</div>
<div class="col-md-4 offset-md-4">
<h3>Mantido por</h3>
<a href="http://pet.inf.ufpr.br">
<img src="{% static 'pet/logo_preto.png' %}" width="75%">
<img src="{% static 'pet/logo_pet_h_branco.png' %}" width="50%">
</a>
</div>
</div>
......
from django import template
register = template.Library()
@register.filter
def to_percent(value):
return "{:.2f}".format(float(value)*100) + "%"
\ No newline at end of file
......@@ -2,6 +2,7 @@
{% load static %}
{% load adega_templatetag %}
{% block content %}
<div class="row">
<div class="col-md-12">
......@@ -25,11 +26,11 @@
</tr>
<tr>
<td>Índice de Reprovação</td>
<td> {{admission_info.taxa_reprovacao|floatformat:2}} </td>
<td> {{admission_info.taxa_reprovacao|to_percent}} </td>
</tr>
<tr>
<td>Indice de Evasão</td>
<td> {{admission_info.taxa_evasao|floatformat:2}} </td>
<td> {{admission_info.taxa_evasao|to_percent}} </td>
</tr>
<tr>
<td>Quantidade de Evadidos</td>
......@@ -126,7 +127,9 @@
div_target: "ira_semestral",
type: "scatter",
legend: "IRA",
title: "IRA/Semestre"
title: "Relação entre IRA médio da turma e períodos",
xaxis_title: "Período",
yaxis_title: "IRA médio da turma",
});
var sorted = AdegaChart.sort_object_by_key(admission_info.students_per_semester);
......@@ -138,8 +141,10 @@
data_y: students_per_semester_y,
div_target: "students_per_semester",
type:["scatter"],
title: "Quantidade de alunos/Semestre",
legend: "Quantidade de alunos"
title: "Quantidade de alunos que se matricularam em ao menos uma disciplina em diferentes período",
legend: "Quantidade de alunos",
xaxis_title: "Período",
yaxis_title: "Quantidade de alunos",
});
</script>
......
......@@ -161,7 +161,6 @@
div_target: "approvation_rate",
title: "Taxa de aprovação por semestre",
fill: "none",
legend: ["Taxa de aprovação","Quantidade de alunos"],
type: ["scatter", "scatter"],
mode: ["lines+markers", "lines+markers"],
legend: [codeCourse1,codeCourse2],
......@@ -174,20 +173,21 @@
});
}
function to_percent(value){
return ((value*100).toFixed(2)) + "%";
}
function updateCourseInfo(){
var grade_mean_1 = courses_info[codeCourse1].grade_mean;
var grade_mean_2 = courses_info[codeCourse1].grade_mean;
$("#grade_mean_1").html(grade_mean_1[0].toFixed(2)+" &plusmn "+grade_mean_1[1]);
$("#fail_rate_1").html(courses_info[codeCourse1].fail_rate);
$("#fail_rate_presence_1").html(courses_info[codeCourse1].fail_rate_presence);
$("#lock_rate_1").html(courses_info[codeCourse1].lock_rate);
grade_mean_1 = courses_info[codeCourse1].grade_mean;
grade_mean_2 = courses_info[codeCourse1].grade_mean;
$("#fail_rate_1").html(to_percent(courses_info[codeCourse1].fail_rate));
$("#fail_rate_presence_1").html(to_percent(courses_info[codeCourse1].fail_rate_presence));
$("#lock_rate_1").html(to_percent(courses_info[codeCourse1].lock_rate));
var grade_mean_2 = courses_info[codeCourse2].grade_mean;
$("#grade_mean_2").html(grade_mean_2[0].toFixed(2)+" &plusmn "+grade_mean_2[1]);
$("#fail_rate_2").html(courses_info[codeCourse2].fail_rate);
$("#fail_rate_presence_2").html(courses_info[codeCourse2].fail_rate_presence);
$("#lock_rate_2").html(courses_info[codeCourse2].lock_rate);
$("#fail_rate_2").html(to_percent(courses_info[codeCourse2].fail_rate));
$("#fail_rate_presence_2").html(to_percent(courses_info[codeCourse2].fail_rate_presence));
$("#lock_rate_2").html(to_percent(courses_info[codeCourse2].lock_rate));
}
$("#selectCourse1").change(function(){
codeCourse1 = $(this).val();
......
......@@ -2,6 +2,8 @@
{% load static %}
{% load adega_templatetag %}
{% block content %}
<div class="row">
......@@ -44,7 +46,7 @@
<tr>
<td>Taxa Reprovação</td>
<td>{% if analysis_result.taxa_reprovacao_absoluta >= 0%}
{{ analysis_result.taxa_reprovacao_absoluta|floatformat:2 }}%
{{ analysis_result.taxa_reprovacao_absoluta|to_percent }}
{% else %}
Desconhecido
{% endif %}</td>
......@@ -52,7 +54,7 @@
<tr>
<td>Taxa Reprovação Frequência </td>
<td>{% if analysis_result.taxa_reprovacao_frequencia >= 0%}
{{ analysis_result.taxa_reprovacao_frequencia|floatformat:2 }}%
{{ analysis_result.taxa_reprovacao_frequencia|to_percent }}
{% else %}
Desconhecido
{% endif %}</td>
......@@ -61,7 +63,7 @@
<tr>
<td>Taxa Reprovação/Último ano</td>
<td>{% if analysis_result.taxa_reprovacao_ultimo_absoluto >= 0%}
{{ analysis_result.taxa_reprovacao_ultimo_absoluto|floatformat:2 }}%
{{ analysis_result.taxa_reprovacao_ultimo_absoluto|to_percent }}
{% else %}
Desconhecido
{% endif %}</td>
......@@ -69,7 +71,7 @@
<tr>
<td>Taxa Reprovação/Último ano Frequência</td>
<td>{% if analysis_result.taxa_reprovacao_ultimo_frequencia >= 0%}
{{ analysis_result.taxa_reprovacao_ultimo_frequencia|floatformat:2 }}%
{{ analysis_result.taxa_reprovacao_ultimo_frequencia|to_percent }}
{% else %}
Desconhecido
{% endif %}</td>
......@@ -85,9 +87,9 @@
</td>
</tr>
<tr>
<td>Taxa Aprovação/Aproveitamento de Conhecimento</td>
<td>Taxa Aprovação por Aproveitamento de Conhecimento</td>
<td>{% if analysis_result.taxa_conhecimento >= 0%}
{{ analysis_result.taxa_conhecimento|floatformat:2 }}%
{{ analysis_result.taxa_conhecimento|to_percent }}
{% else %}
Desconhecido
{% endif %}</td>
......@@ -103,7 +105,7 @@
<tr>
<td>Taxa Trancamento</td>
<td>{% if analysis_result.taxa_trancamento >= 0%}
{{ analysis_result.taxa_trancamento|floatformat:2 }}%
{{ analysis_result.taxa_trancamento|to_percent }}
{% else %}
Desconhecido
{% endif %}</td>
......@@ -120,11 +122,11 @@
<div id="graficos">
<div class="row">
<div class="col-md-12">
<h3>Indice de aprovação/Semestre</h3>
<!-- <h3>Indice de aprovação/Semestre</h3> -->
<div id="aprovacao_semestre"></div>
</div>
<div class="col-md-12">
<h3>Quantidade de Alunos/Vezes Cursadas</h3>
<!-- <h3>Quantidade de Alunos/Vezes Cursadas</h3> -->
<div id="qtd_cursada_aprov"></div>
</div>
</div>
......@@ -148,11 +150,14 @@
var chart1 = new AdegaChart({
data: {{analysis_result.aprovacao_semestral|safe}},
div_target: "aprovacao_semestre",
title: "Indice de aprovação/Semestre",
title: "Relação entre quantidade de alunos matriculados e taxa de aprovação",
fill: "none",
legend: ["Taxa de aprovação","Quantidade de alunos"],
type:["scatter", "bar"],
data_axis_y: ["y2", "y"]
data_axis_y: ["y2", "y"],
xaxis_title: "Período",
yaxis_title: "Quantidade de matrículas",
yaxis2_title: "Taxa de aprovação",
});
var chart2 = new AdegaChart({
......@@ -160,8 +165,10 @@
data_y: grafico_qtd_cursada_aprov_y,
div_target: "qtd_cursada_aprov",
type:"bar",
title: "Quantidade de Alunos/Vezes Cursadas",
legend: "Quantidade de alunos"
title: "Quantidade de vezes necessárias para realizar a disciplina até a aprovação",
legend: "Quantidade de alunos",
xaxis_title: "Quantidade de alunos",
yaxis_title: "Quantidade de matrículas na disciplina",
});
</script>
......
{% extends 'base.html' %}
{% load adega_templatetag %}
{% block content%}
<div class="row">
<div class="col-md-12">
......@@ -10,28 +12,29 @@
<td>{{degree_data.qtd_alunos_atuais}}</td>
</tr>
<tr>
<td>I.R.A. médio desde o inicio do curso</td>
<td>IRA médio desde o inicio do curso</td>
<td>{{degree_data.ira_medio.0|floatformat:2}} &#177;
{{degree_data.ira_medio.1|floatformat:2}}</td>
</tr>
<tr>
<td> I.R.A. médio dos alunos atualmente no curso</td>
<td> IRA médio dos alunos atualmente no curso</td>
<td>{{degree_data.ira_atual.0|floatformat:2}} &#177; {{degree_data.ira_atual.1|floatformat:2}}</td>
</tr>
<tr>
<td>Taxa de reprovação desde o inicio do curso</td>
<td>{{ degree_data.taxa_reprovacao.0|floatformat:2 }}%
&#177; {{degree_data.taxa_reprovacao.1|floatformat:2 }}%</td>
<td>{{ degree_data.taxa_reprovacao.0 | to_percent }}
&#177; {{degree_data.taxa_reprovacao.1 | to_percent }}</td>
</tr>
<tr>
<td>Taxa de reprovação dos alunos atualmente no curso</td>
<td>{{ degree_data.taxa_reprovacao_atual.0|floatformat:2 }}% &#177; {{degree_data.taxa_reprovacao_atual.1|floatformat:2}}%</td>
<td>{{ degree_data.taxa_reprovacao_atual.0|to_percent }}
&#177; {{degree_data.taxa_reprovacao_atual.1|to_percent}}</td>
</tr>
<tr>
{% comment %}
<td>Média de formandos (de {{ degree_data.total_alunos }} alunos)</td>
<td>{{ degree_data.media_formandos|floatformat:2 }}%</td>
<td>{{ degree_data.media_formandos|to_percent }}</td>
</tr>
<tr>
<td>Taxa de evasão desde o inicio do curso</td>
......@@ -53,22 +56,22 @@
<div class="panel-container">
<div class="data-panel">
<h3>Nota Média</h3>
<span class="data">{{ degree_data.nota_media.0|floatformat:2 }} &#177; {{degree_data.nota_media.1|floatformat:2 }}</span>
<span class="data">{{ 100*degree_data.nota_media.0|to_percent }} &#177; {{100*degree_data.nota_media.1|floatformat:2 }}</span>
</div>
<div class="data-panel">
<h3>Taxa Média de Reprovação</h3>
<span class="data">{{ degree_data.taxa_reprovacao.0|floatformat:2 }}% &#177; {{degree_data.taxa_reprovacao.1|floatformat:2 }}%</span>
<span class="data">{{ 100*degree_data.taxa_reprovacao.0|to_percent }} &#177; {{100*degree_data.taxa_reprovacao.1|to_percent}}</span>
</div>
</div>
<br>
<div class="panel-container">
<div class="data-panel">
<h3>Aprovação Aproveitamento de Conhecimento</h3>
<span class="data">{{ degree_data.taxa_conhecimento.0|floatformat:2 }}% &#177; {{degree_data.taxa_conhecimento.1|floatformat:2 }}%</span>
<span class="data">{{ degree_data.taxa_conhecimento.0|to_percent }} &#177; {{degree_data.taxa_conhecimento.1|to_percent}}</span>
</div>
<div class="data-panel">
<h3>Taxa de Trancamento</h3>
<span class="data">{{ degree_data.taxa_trancamento.0|floatformat:2 }}% &#177;{{degree_data.taxa_trancamento.1|floatformat:2}}%</span>
<span class="data">{{ degree_data.taxa_trancamento.0|to_percent }} &#177;{{degree_data.taxa_trancamento.1|to_percent}}</span>
</div>
</div>
</div>
......@@ -147,34 +150,39 @@
}
var ira_semestral = {{degree_data.ira_medio_grafico|safe}};
var ira_semestral_data = convert_degree_chart_data(ira_semestral);
var ira_medio = {{degree_data.ira_medio_grafico|safe}};
var ira_medio_data = convert_degree_chart_data(ira_medio);
var evasao_semestre = {{degree_data.evasao_grafico|safe}};
var evasao_semestre_data = convert_degree_chart_data(evasao_semestre);
// ira_semestral_data will be in format of:
// {"00-4.9": [10,20,30], "05-9.9": [11,21,31], ...}
console.log(evasao_semestre_data);
var chart1 = new AdegaChart({
data: ira_semestral_data,
data: ira_medio_data,
div_target: "ira_semestral",
title: "Quantidade alunos/IRA",
title: "Distribuição de alunos por faixas de IRA",
fill: "none",
legend: [
"Quantidade total de alunos",
"Quantidade total de alunos sem evasão",
"Quantidade total de alunos formados"
],
xaxis_title: "Faixa de IRA",
yaxis_title: "Quantidade de alunos",
});
var chart2 = new AdegaChart({
data: evasao_semestre_data,
div_target: "evasao_semestre",
title: "Quantidade evasão/período",
title: "Quantidade de evasão em cada período",
fill: "none",
type: ["scatter","bar"],
legend: ["Taxa", "Quantidade"],
data_axis_y: ["y2","y1"]
legend: ["Quantidade", "Taxa"],
xaxis_title: "Período",
yaxis_title: "Quantidade de evasões",
yaxis2_title: "Taxa de evasão (em relação ao total)",
data_axis_y: ["y1","y2"]
});
......
......@@ -7,7 +7,6 @@ from submission.models import Submission
import json
from guardian.decorators import permission_required_or_403
@permission_required_or_403('view_degree', (Submission, 'id', 'submission_id'))
def index(request, submission_id):
submission_id = int(submission_id)
......
......@@ -2,7 +2,7 @@
{% load static %}
{% load math_tags %}
{% load adega_templatetag %}
{% block content %}
<div class="row">
......@@ -17,57 +17,58 @@
<a class="nav-item nav-link" href="#disciplinas" aria-controls="disciplinas" data-toggle="tab">Lista de Disciplinas</a>
</div>
</div>
<div class="tab-content">
<div role="tabpanel" class="tab-pane active" id="resumo">
<div class="panel-container">
<div class="data-panel">
<h3>Entrada</h3>
<span class="data">{{ analysis_result.student.ano_ingresso }}/{{ analysis_result.student.semestre_ingresso }}</span>
</div>
{% if analysis_result.student.ano_evasao %}
<div class="data-panel">
<h3>Saida</h3>
<span class="data">{{ analysis_result.student.forma_evasao }}</span><br>
{% if analysis_result.student.forma_evasao != "Sem evasão" %}
<span class="data">{{ analysis_result.student.ano_evasao }}/{{analysis_result.student.semestre_evasao}}</span>
{% endif %}
</div>
{% endif %}
</div>
<div class="panel-container">
<div class="data-panel">
<h3>Ira</h3>
<span class="data">{{ analysis_result.student.ira|floatformat:2 }}</span>
</div>
<div class="data-panel">
<h3>Taxa de Aprovação</h3>
<span class="data">{{ analysis_result.indice_aprovacao|multiply:100|floatformat:2 }}%</span>
</div>
<div class="data-panel">
<h3>Periodo real</h3>
{% if analysis_result.periodo_real %}
<span class="data">{{ analysis_result.periodo_real }}</span>
{% elif analysis_result.student.forma_evasao == 'Formatura' %}
<span class="data">Formado</span>
{% else %}
<span class="data">Desconhecido</span>
{% endif %}
</div>
<div class="data-panel">
<h3>Periodo pretendido</h3>
{% if analysis_result.periodo_pretendido %}
<span class="data">{{ analysis_result.periodo_pretendido }}</span>
{% else %}
<span class="data">Formado</span>
{% endif %}
</div>
</div>
<table class="table">
<tr>
<td>Saída do curso</td>
<td>
<span class="data">{{ analysis_result.student.forma_evasao }}</span><br>
{% if analysis_result.student.forma_evasao != "Sem evasão" %}
<span class="data">{{ analysis_result.student.ano_evasao }}/{{analysis_result.student.semestre_evasao}}</span>
{% endif %}
</td>
</tr>
<tr>
<td>IRA</td>
<td>
<span class="data">{{ analysis_result.student.ira|floatformat:2 }}</span>
</td>
</tr>
<tr>
<td>Taxa de Aprovação</td>
<td>
<span class="data">{{ analysis_result.indice_aprovacao|to_percent }}</span>
</td>
</tr>
<tr>
<td>Período real</td>
<td>
{% if analysis_result.periodo_real %}
<span class="data">{{ analysis_result.periodo_real }}</span>
{% elif analysis_result.student.forma_evasao == 'Formatura' %}
<span class="data">Formado</span>
{% else %}
<span class="data">Desconhecido</span>
{% endif %}
</td>
</tr>
<tr>
<td>Período pretendido</td>
<td>
{% if analysis_result.periodo_pretendido %}
<span class="data">{{ analysis_result.periodo_pretendido }}</span>
{% else %}
<span class="data">Formado</span>
{% endif %}
</td>
</tr>
</table>
</div>
<br>
......@@ -122,7 +123,7 @@
</div>
<div class="row">
<div class="col-md-12">
<h3>Aprovações Acumulada</h3>
<h3>Aprovações Acumuladas</h3>
<div id="aprovacao_acumulada"></div>
</div>
</div>
......@@ -142,8 +143,10 @@
data: {{analysis_result.ira_semestral|safe}},
div_target: "ira_semestral",
//type: "bar",
title: "IRA/Semestre",
legend: "IRA"
title: "Relação entre IRA e período",
legend: "IRA semestral",
xaxis_title: "Período",
yaxis_title: "IRA semestral",
});
var chart2 = new AdegaChart({
......@@ -152,15 +155,19 @@
type: ["bar","bar"],
title: "Índice de aprovação/Semestre",
legend: ["Aprovações em disciplinas","Quantidade disciplinas cursadas"],
barmode: "grouped"
barmode: "grouped",
xaxis_title: "Período",
yaxis_title: "Quantidade de disciplinas",
});
var chart3 = new AdegaChart({
data: {{analysis_result.posicao_turmaIngresso_semestral|safe}},
div_target: "posicao_turma_ingresso_semestral",
fill: "none",
title: "Posição do aluno em relação a turma de ingresso/Semestre(%)",
legend: "Posição relativa"
title: "Posição do aluno em relação à turma de ingresso em cada período (1.0 representa o melhor desempenho)",
legend: "Posição relativa",
xaxis_title: "Período",
yaxis_title: "Posição relativa em relação à turma ingresso",
});
......@@ -170,10 +177,13 @@
div_target: "ira_disciplinas_semestre",
type: ["scatter","bar","scatter"],
title: "Relação entre IRA e a quantidade de disciplinas por semestre",
legend: ["IRA","Quantidade disciplinas","Carga horária"],
legend: ["IRA semestral","Quantidade disciplinas","Carga horária"],
hide_charts: [false,false,true],
fill: "none",
data_axis_y: ["y2", "y"]
data_axis_y: ["y2", "y"],
xaxis_title: "Período",
yaxis_title: "Quantidade de disciplinas cursadas",
yaxis2_title: "IRA semestral",
});
var aprovacao_semestral = {{analysis_result.indice_aprovacao_semestral|safe}} ;
......@@ -183,9 +193,11 @@
data: aprovacao_semestral,
div_target: "aprovacao_acumulada",
type: ["bar","bar"],
title: "Aprovações Acumulada",
title: "Relação entre quantidade de disciplinas cursadas e aprovadas",
legend: ["Aprovações acumuladas","Disciplinas cursadas acumuladas"],
barmode: "grouped"
barmode: "grouped",
xaxis_title: "Período",
yaxis_title: "Quantidade de disciplinas",
});
chart5.transformToAcumulation();
......
This diff is collapsed.
......@@ -237,8 +237,7 @@ def admission_class_ira_per_semester(df):
dict_admission.update({admission[0]:dict_ira_semester})
return dict_admission
def iras_alunos_turmas_ingressos(df):
student_analysis = StudentAnalysis(df)
def iras_alunos_turmas_ingressos(df, student_analysis):
iras = student_analysis.ira_alunos()
turmas_ingresso_grr = df.groupby([
......@@ -264,8 +263,8 @@ def iras_alunos_turmas_ingressos(df):
def media_ira_turma_ingresso(df):
iras_alunos_por_turma = iras_alunos_turmas_ingressos(df)
def media_ira_turma_ingresso(df, student_analysis):
iras_alunos_por_turma = iras_alunos_turmas_ingressos(df, student_analysis)
# Calcula a média do ira para cada turma_ingresso
resultados = {}
for r in iras_alunos_por_turma:
......@@ -274,8 +273,8 @@ def media_ira_turma_ingresso(df):
return resultados
def desvio_padrao_turma_ingresso(df):
iras_alunos_por_turma = iras_alunos_turmas_ingressos(df)
def desvio_padrao_turma_ingresso(df, student_analysis):
iras_alunos_por_turma = iras_alunos_turmas_ingressos(df, student_analysis)
# Calcula o desvio padrão para cada turma_ingresso
resultados = {}
for r in iras_alunos_por_turma:
......
......@@ -383,5 +383,4 @@ class Course(Analysis):
course_dict["grafico_qtd_cursada_aprov"] = self.analysis["coursed_count"][course]
course_dict["aprovacao_semestral"] = aprovacao_d[course]
courses.append(course_dict)
return courses
......@@ -9,15 +9,16 @@ from submission.analysis.utils.utils import memoize
import pandas as pd
from collections import defaultdict
CURRENT_YEAR = 2017
CURRENT_SEMESTER = 1
class StudentAnalysis:
data_frame = None
def __init__(self, df):
def __init__(self, df, current_year, current_semester):
self.data_frame = df
self.current_year = current_year
self.current_semester = current_semester
@memoize
def student_info(self, df=None):
df = df if df is not None else self.data_frame
......@@ -176,7 +177,7 @@ class StudentAnalysis:
aux = df.groupby(["MATR_ALUNO", "ANO_INGRESSO", "SEMESTRE_INGRESSO"])
students = {}