Commit f46c2ad9 authored by Jomaro Rodrigues's avatar Jomaro Rodrigues

resolvendo conflitos

parents cd9cc857 55caa9fc
Pipeline #11121 passed with stage
in 1 minute and 59 seconds
# -*- coding: utf-8 -*-
from student.analysis import *
from .models import Curso
from turmaIngresso.models import *
from turmaIngresso.analysis import *
from adega.utilidades.data import *
import numpy as np
import math
SITUACOES_CURSADAS_ATE_O_FIM = (
......@@ -280,6 +279,36 @@ def grafico_ira_medio_formatura(curso):
return dic_for
def grafico_periodo(curso):
turma_ingressos = TurmaIngresso.objects.filter(curso=curso)
di_qtd = {}
dic = {}
evasoes = 0
for ti in turma_ingressos:
ano = ti.ano
semestre = ti.semestre
indice_evasao_semestral = calc_indice_evasao_sem(ti)
for ies in indice_evasao_semestral:
data = ies.split('/')
ano_s = 2*(int(data[0]) - ano)
if int(data[1]) - semestre < 0:
semestre_s = 1
else:
semestre_s = int(data[1]) - semestre
if ano_s + semestre_s + 1 > 8:
continue
data = '{}º Período'.format(ano_s+semestre_s+1)
if data not in di_qtd:
di_qtd[data] = 0
di_qtd[data] += indice_evasao_semestral[ies]['qtd_evasao']
evasoes += indice_evasao_semestral[ies]['qtd_evasao']
for di in di_qtd:
qtd = di_qtd[di]
dic[di] = {'qtd': qtd, 'taxa': (qtd/evasoes)*100}
return dic
def build_dict_ira_medio(alunos):
dic = {"00-4.9":0, "05-9.9":0, "10-14.9":0, "15-19.9":0, "20-24.9":0, "25-29.9":0, "30-34.9":0,
"35-39.9":0, "40-44.9":0, "45-49.9":0, "50-54.9":0, "55-59.9":0, "60-64.9":0, "65-69.9":0,
......@@ -301,55 +330,6 @@ def build_dict_ira_medio(alunos):
return dic
def grafico_evasao(curso):
turma_ingressos = TurmaIngresso.objects.filter(curso=curso)
di_qtd = {}
dic = {}
evasoes = 0
for ti in turma_ingressos:
caches = TurmaIngressoCacheSemestre.objects.filter(turma_ingresso=ti)
for cache in caches:
data = '{}/{}'.format(cache.ano, cache.semestre)
if data not in di_qtd:
di_qtd[data] = 0
di_qtd[data] += cache.qtd_evasao
evasoes += cache.qtd_evasao
for di in di_qtd:
qtd = di_qtd[di]
dic[di] = {'qtd': qtd, 'taxa': (qtd/evasoes)*100}
return dic
def grafico_periodo(curso):
turma_ingressos = TurmaIngresso.objects.filter(curso=curso)
di_qtd = {}
dic = {}
evasoes = 0
for ti in turma_ingressos:
ano = ti.ano
semestre = ti.semestre
caches = TurmaIngressoCacheSemestre.objects.filter(turma_ingresso=ti)
for cache in caches:
ano_s = 2*(cache.ano - ano)
if cache.semestre - semestre < 0:
semestre_s = 1
else:
semestre_s = cache.semestre - semestre
if ano_s+semestre_s+1 > 8:
continue
data = '{}º Período'.format(ano_s+semestre_s+1)
if data not in di_qtd:
di_qtd[data] = 0
di_qtd[data] += cache.qtd_evasao
evasoes += cache.qtd_evasao
for di in di_qtd:
qtd = di_qtd[di]
dic[di] = {'qtd': qtd, 'taxa': (qtd/evasoes)*100}
return dic
def quantidade_alunos_atual(curso):
cont_alunos = Student.objects.filter(turma_ingresso__curso = curso,
forma_evasao="Sem evasão").count()
......
......@@ -41,22 +41,3 @@ class DisciplinaGrade(models.Model):
disciplina = models.ForeignKey(Disciplina)
periodo = models.PositiveIntegerField(null=True)
tipo_disciplina = models.CharField(max_length=255)
class CursoCache(models.Model):
curso = models.ForeignKey(Curso)
ira_medio = models.FloatField(validators=[MinValueValidator(0)], null=True, blank=True)
ira_atual = models.FloatField(validators=[MinValueValidator(0)], null=True, blank=True)
taxa_reprovacao = models.FloatField()
taxa_reprovacao_atual = models.FloatField()
taxa_evasao = models.FloatField()
taxa_formatura = models.FloatField()
qtd_alunos = models.PositiveIntegerField()
tempo_formatura = models.FloatField()
class CursoCacheSemestre(models.Model):
curso = models.ForeignKey(Curso)
ano = models.PositiveIntegerField()
semestre = models.PositiveIntegerField()
ira_medio = models.FloatField(validators=[MinValueValidator(0)], null=True, blank=True)
taxa_reprovacao = models.FloatField()
taxa_evasao = models.FloatField()
......@@ -274,16 +274,6 @@ def media_disciplias_semestre(grades, grades_id):
periodos = grades_id[grade.id]
for p in periodos:
disc[grade.ano_inicio][p] = round(periodos[p].nota, 2)
#for cache in periodos[p]:
# disc[grade.ano_inicio][p] = round(cache.nota, 2)
# for grade in grades:
# disciplinas_grade = DisciplinaGrade.objects.filter(grade=grade)
# disc[grade.ano_inicio] = {}
# for disc_grade in disciplinas_grade:
# cache = DisciplinaCache.objects.get(disciplina=disc_grade.disciplina)
# disc[grade.ano_inicio][disc_grade.periodo] = round(cache.nota,2)
return disc
......
......@@ -12,28 +12,4 @@ class Disciplina(models.Model):
def __str__(self):
return self.nome
class DisciplinaCache(models.Model):
disciplina = models.ForeignKey(Disciplina)
nota = models.FloatField()
#taxa_reprovacao = models.FloatField()
taxa_trancamento = models.FloatField()
taxa_conhecimento = models.FloatField()
nota_ultimo_ano = models.FloatField()
taxa_reprovacao_ultimo_absoluto = models.FloatField()
taxa_reprovacao_frequencia = models.FloatField()
taxa_reprovacao_ultimo_frequencia = models.FloatField()
taxa_reprovacao_absoluta = models.FloatField()
qtd_alunos = models.IntegerField()
qtd_trancamento = models.IntegerField()
qtd_conhecimento = models.IntegerField()
class DisciplinaComparaAprov(models.Model):
disciplina = models.ForeignKey(Disciplina)
data = models.CharField(max_length=7)
valor = models.FloatField()
class DisciplinaComparaNota(models.Model):
disciplina = models.ForeignKey(Disciplina)
intervalo = models.CharField(max_length=10)
valor = models.FloatField()
......@@ -11,8 +11,10 @@ var color = [
var disciplinas = [];
$("select").change(function(){
changeSelects();
$(document).ready(function(){
$("select").change(function(){
changeSelects();
});
});
function changeSelects(){
......@@ -43,7 +45,7 @@ function handle_cache() {
table.html(
"<tr><td>Nota Média</td>"+
"<td>"+dados[1].nota.toFixed(2)+"</td></tr>" +
"<td>"+dados[1].nota[0].toFixed(2)+"&#177;"+dados[1].nota[1].toFixed(2)+"</td></tr>" +
"<tr><td>Taxa Reprovação</td>"+
"<td>"+dados[1].taxa_reprovacao_absoluta.toFixed(2)+"%</td></tr>" +
......
......@@ -70,15 +70,15 @@
</table>
</div>
</div>
<div class="graficos">
<div class="row">
<div class="row">
<div class="graficos">
<div class="col-md-6">
<h3>Comparação Disciplinas - Alunos/Nota(%)</h3>
<h3>Alunos/Nota(%)</h3>
<canvas id="compara_disciplina"
data-data='{{ analysis_result.compara_disciplina|safe }}'></canvas>
</div>
<div class="col-md-6">
<h3>Comparação Disciplinas - Taxa Aprovação(%)</h3>
<h3>Taxa Aprovação(%)</h3>
<canvas id="compara_aprovacao_disciplina"
data-data='{{ analysis_result.compara_aprovacao_disciplina|safe }}'></canvas>
</div>
......
This diff is collapsed.
This diff is collapsed.
......@@ -63,18 +63,3 @@ class Student(models.Model):
def __str__(self):
return self.name
class StudentCache(models.Model):
student = models.ForeignKey(Student)
taxa_aprovacao = models.FloatField(null=True)
periodo_real = models.PositiveIntegerField(null=True)
periodo_pretendido = models.PositiveIntegerField(null=True)
class StudentCacheSemestre(models.Model):
student = models.ForeignKey(Student)
ano = models.PositiveIntegerField()
semestre = models.PositiveIntegerField()
ira = models.FloatField(validators=[MinValueValidator(0)], null=True, blank=True)
taxa_aprovacao = models.FloatField()
qtd_disciplinas = models.FloatField()
qtd_aprovados = models.FloatField()
posicao_aluno = models.FloatField()
\ No newline at end of file
......@@ -22,24 +22,3 @@ class TurmaIngresso(models.Model):
def __repr__(self):
return "%s/%s" % (self.ano, self.semestre)
class TurmaIngressoCache(models.Model):
turma_ingresso = models.ForeignKey(TurmaIngresso)
tempo_medio_formatura = models.FloatField()
ira = models.FloatField(validators=[MinValueValidator(0)], null=True, blank=True)
indice_reprovacao = models.FloatField()
indice_evasao = models.FloatField()
qtd_alunos = models.PositiveIntegerField()
ano = models.PositiveIntegerField()
semestre = models.PositiveIntegerField()
curso = models.ForeignKey(Curso)
class TurmaIngressoCacheSemestre(models.Model):
turma_ingresso = models.ForeignKey(TurmaIngresso)
ano = models.PositiveIntegerField()
semestre = models.PositiveIntegerField()
ira = models.FloatField(validators=[MinValueValidator(0)], null=True, blank=True)
indice_evasao = models.FloatField()
qtd_evasao = models.PositiveIntegerField()
qtd_disciplina = models.FloatField()
qtd_aprovado = models.FloatField()
indice_aprovacao = models.FloatField()
......@@ -5,7 +5,7 @@ from django.template.defaulttags import register
from student.models import Student
from turma.models import *
from turmaIngresso.models import TurmaIngresso, TurmaIngressoCache, TurmaIngressoCacheSemestre
from turmaIngresso.models import TurmaIngresso
from curso.models import Curso
......@@ -16,7 +16,7 @@ import json
@login_required
def index(request, curso_id):
curso = Curso.objects.get(codigo=curso_id)
turmas_ingresso = TurmaIngressoCache.objects.filter(curso=curso).order_by('-ano', '-semestre')
turmas_ingresso = TurmaIngresso.objects.filter(curso = curso).order_by('-ano', '-semestre')
with open('cache/curso/' + curso_id + '/turma_ingresso/lista_turma_ingresso.json') as lista:
cache_j = json.load(lista)
......
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