Sistema de Informações Gerenciais do Interlegis
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

72 lines
3.1 KiB

from sigi.apps.casas.models import CasaLegislativa
from sigi.apps.convenios.models import Convenio, Projeto
from sigi.apps.contatos.models import UnidadeFederativa
def charts_data(request):
casas = CasaLegislativa.objects.all()
convenios = Convenio.objects.all()
projetos = Projeto.objects.all()
convenios_firmados = convenios.exclude(data_retorno_assinatura=None)
num_convenios_firmados = convenios_firmados.count()
num_convenios_nao_firmados = convenios.filter(data_retorno_assinatura=None).count()
#num_casas_nao_aderidas = CasaLegislativa.objects.filter(convenio=None).count()
#num_casas_nao_aderidas = casas.count() - convenios.exclude(data_adesao=None).count()
# Verifica quantidade de convenios por projeto
convenios_por_projeto = []
for p in projetos:
convenios_por_projeto.append(convenios_firmados.filter(projeto=p).count())
num_casas_regiao = [
casas.filter(municipio__uf__regiao='CO').count(),
casas.filter(municipio__uf__regiao='NO').count(),
casas.filter(municipio__uf__regiao='NE').count(),
casas.filter(municipio__uf__regiao='SD').count(),
casas.filter(municipio__uf__regiao='SL').count()
]
#num_convenios_firmados_regiao = [
# convenios_firmados.filter(casa_legislativa__municipio__uf__regiao='CO').count(),
# convenios_firmados.filter(casa_legislativa__municipio__uf__regiao='NO').count(),
# convenios_firmados.filter(casa_legislativa__municipio__uf__regiao='NE').count(),
# convenios_firmados.filter(casa_legislativa__municipio__uf__regiao='SD').count(),
# convenios_firmados.filter(casa_legislativa__municipio__uf__regiao='SL').count()
#]
REGIAO_CHOICES = ('CO','NO','NE','SD','SL')
# Busca numero de casas conveniadas por regiao
num_casas_conveniadas_regiao = []
for regiao in REGIAO_CHOICES:
num_casas_conveniadas_regiao.append(
CasaLegislativa.objects.filter(
convenio__casa_legislativa__municipio__uf__regiao=regiao
).exclude(
convenio__data_retorno_assinatura=None
).distinct().count()
)
# Busca numero de casas sem convenio por regiao
num_casas_sem_convenio_regiao = []
for i in range(len(num_casas_regiao)):
num_casas_sem_convenio_regiao.append(
num_casas_regiao[i] - num_casas_conveniadas_regiao[i]
)
# Verifica qual regiao tem mais convenios e guarda valor para "axis left" do grafico de regioes
num_regiao_maior = 0
for i in num_casas_regiao:
if num_regiao_maior<i:
num_regiao_maior = i
equip_n_recebidos = convenios.filter(data_termo_aceite=None).count()
equip_recebidos = convenios.exclude(data_termo_aceite=None).count()
return {
'regioes_chart_data': [num_casas_conveniadas_regiao, num_casas_sem_convenio_regiao, num_regiao_maior],
'convenios_chart_data': [num_convenios_firmados, num_convenios_nao_firmados,],
'equipamentos_chart_data': [equip_recebidos, equip_n_recebidos],
'projetos_chart_data': projetos,
'convenios_por_projeto_chart_data': convenios_por_projeto,
}