mirror of https://github.com/interlegis/sigi.git
Starlone (Estagiario)
14 years ago
4 changed files with 144 additions and 121 deletions
@ -1,74 +1,107 @@ |
|||
#-*- coding:utf-8 -*- |
|||
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() |
|||
''' |
|||
Busca informacoes para a criacao dos graficos e resumos |
|||
''' |
|||
|
|||
projetos = Projeto.objects.all() |
|||
convenios = Convenio.objects.all() |
|||
convenios_assinados = convenios.exclude(data_retorno_assinatura=None) |
|||
|
|||
tabela_resumo_camara = busca_informacoes_camara() |
|||
g_conv_proj = grafico_convenio_projeto(convenios) |
|||
g_convassinado_proj = grafico_convenio_projeto(convenios_assinados) |
|||
|
|||
return { |
|||
'tabela_resumo_camara' : tabela_resumo_camara, |
|||
'g_conv_proj': g_conv_proj, |
|||
"g_convassinado_proj":g_convassinado_proj, |
|||
} |
|||
|
|||
def busca_informacoes_camara(): |
|||
''' |
|||
Busca informacoes no banco para montar tabela de resumo de camaras por projeto |
|||
Retorna um dicionario de listas |
|||
''' |
|||
casas = CasaLegislativa.objects.all() |
|||
camaras = casas.filter(tipo__sigla='CM') |
|||
convenios = Convenio.objects.filter(casa_legislativa__tipo__sigla='CM') |
|||
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( |
|||
casas.filter( |
|||
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 = CasaLegislativa.objects.exclude(convenio=None).filter(convenio__data_termo_aceite=None).distinct().count() |
|||
equip_recebidos = CasaLegislativa.objects.exclude(convenio=None).exclude(convenio__data_termo_aceite=None).distinct().count() |
|||
#equip_n_recebidos = convenios.filter(data_termo_aceite=None).count() |
|||
#equip_recebidos = convenios.exclude(data_termo_aceite=None).count() |
|||
convenios_assinados = convenios.exclude(data_retorno_assinatura=None) |
|||
convenios_em_andamento = convenios.filter(data_retorno_assinatura=None) |
|||
|
|||
camaras_nao_aderidas = camaras.filter(convenio__data_adesao=None) |
|||
camaras_aderidas = camaras.exclude(convenio__data_adesao=None) |
|||
|
|||
camaras_equipadas = camaras.exclude(convenio__data_termo_aceite=None) |
|||
|
|||
# Criacao das listas para o resumo de camaras por projeto |
|||
|
|||
cabecalho_topo = ['','Total'] # Cabecalho superior da tabela |
|||
|
|||
lista_total = [camaras.count()] |
|||
lista_nao_aderidas = [camaras_nao_aderidas.count()] |
|||
lista_aderidas = [camaras_aderidas.count()] |
|||
lista_convenios_assinados = [convenios_assinados.count()] |
|||
lista_convenios_em_andamento = [convenios_em_andamento.count()] |
|||
lista_camaras_equipadas = [camaras_equipadas.count()] |
|||
for projeto in projetos: |
|||
cabecalho_topo.append(projeto.sigla) |
|||
lista_total.append(camaras.filter(convenio__projeto=projeto).count()) |
|||
lista_nao_aderidas.append(camaras_nao_aderidas.filter(convenio__projeto=projeto).count()) |
|||
lista_aderidas.append(camaras_aderidas.filter(convenio__projeto=projeto).count()) |
|||
lista_convenios_assinados.append(convenios_assinados.filter(projeto=projeto).count()) |
|||
lista_convenios_em_andamento.append(convenios_em_andamento.filter(projeto=projeto).count()) |
|||
lista_camaras_equipadas.append(camaras_equipadas.filter(convenio__projeto=projeto).count()) |
|||
|
|||
# Cabecalho da esquerda na tabela |
|||
cabecalho_esquerda = ( |
|||
u'Total de câmaras municipais', |
|||
u'Câmaras municipais não aderidas', |
|||
u'Câmaras municipais aderidas', |
|||
u'Câmaras municipais com convênios assinados', |
|||
u'Câmaras municipais convênios em andamento', |
|||
u'Câmaras municipais equipadas' |
|||
) |
|||
|
|||
linhas = ( |
|||
lista_total, |
|||
lista_nao_aderidas, |
|||
lista_aderidas, |
|||
lista_convenios_assinados, |
|||
lista_convenios_em_andamento, |
|||
lista_camaras_equipadas, |
|||
) |
|||
|
|||
# Unindo as duas listass para que o cabecalho da esquerda fique junto com sua |
|||
# respectiva linha |
|||
lista_zip = zip(cabecalho_esquerda,linhas) |
|||
|
|||
# Retornando listas em forma de dicionario |
|||
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, |
|||
u'cabecalho_topo': cabecalho_topo, |
|||
u'lista_zip': lista_zip, |
|||
u'linhas' : linhas, |
|||
|
|||
} |
|||
|
|||
def grafico_convenio_projeto(convenios): |
|||
projetos = Projeto.objects.all() |
|||
|
|||
lista_convenios = [] |
|||
for projeto in projetos: |
|||
lista_convenios.append(convenios.filter(projeto=projeto).count()) |
|||
|
|||
dic = { |
|||
"total_convenios":("Total: " + str(convenios.count())), |
|||
"convenios":lista_convenios, |
|||
"projetos":projetos |
|||
} |
|||
return dic |
|||
|
|||
|
|||
|
@ -1,75 +1,60 @@ |
|||
{% load charts %} |
|||
|
|||
{% chart as convenios %} |
|||
{% chart-size 440 160 %} |
|||
{% chart-type "pie-3d" %} |
|||
{% chart-labels convenios_chart_data %} |
|||
{% chart-legend "Convêniadas" "Aderidas" %} |
|||
{% chart-data convenios_chart_data %} |
|||
{% chart-colors "A2CD5A,FFB90F,6CA6CD" %} |
|||
{% endchart %} |
|||
|
|||
{% chart as regioes %} |
|||
{% chart-size 440 160 %} |
|||
{% chart-type "column-stacked" %} |
|||
{% chart-bar-width "40" %} |
|||
{% chart-labels "Centro-O" "Norte" "Nordeste" "Sudeste" "Sul" %} |
|||
{% chart-data regioes_chart_data.0 regioes_chart_data.1 %} |
|||
{% chart-legend "Conveniadas" "Total" %} |
|||
{% axis "left" %} |
|||
{% axis-range 0 regioes_chart_data.2 %} |
|||
{% endaxis %} |
|||
{% chart-colors "A2CD5A,FFB90F,6CA6CD" %} |
|||
{% endchart %} |
|||
|
|||
{% chart as equipamentos %} |
|||
{% chart as convenios_assinados %} |
|||
{% chart-size 440 160 %} |
|||
{% chart-type "pie-3d" %} |
|||
{% chart-labels equipamentos_chart_data %} |
|||
{% chart-data equipamentos_chart_data %} |
|||
{% chart-legend "Recebidos" "Não recebidos" %} |
|||
{% chart-labels g_convassinado_proj.convenios %} |
|||
{% chart-data g_convassinado_proj.convenios %} |
|||
{% chart-legend g_convassinado_proj.projetos %} |
|||
{% chart-colors "A2CD5A,FFB90F,6CA6CD" %} |
|||
{% chart-title g_convassinado_proj.total_convenios %} |
|||
{% endchart %} |
|||
|
|||
{% chart as projetos %} |
|||
{% chart as processos %} |
|||
{% chart-size 440 160 %} |
|||
{% chart-type "pie-3d" %} |
|||
{% chart-labels convenios_por_projeto_chart_data %} |
|||
{% chart-data convenios_por_projeto_chart_data %} |
|||
{% chart-legend projetos_chart_data %} |
|||
{% chart-labels g_conv_proj.convenios %} |
|||
{% chart-data g_conv_proj.convenios %} |
|||
{% chart-legend g_conv_proj.projetos %} |
|||
{% chart-colors "A2CD5A,FFB90F,6CA6CD" %} |
|||
{% chart-title g_conv_proj.total_convenios %} |
|||
{% endchart %} |
|||
|
|||
|
|||
<div class="module"> |
|||
<h2>Convênios</h2> |
|||
<h3>Convênios com as Casas Legislativas</h3> |
|||
<p class="align-center"> |
|||
<img src="{{ convenios.url }}" class="chart" /> |
|||
</p> |
|||
<h2>Resumo de informações</h2> |
|||
<h3>Câmaras municipais por projeto</h3> |
|||
<div class="align-center"> |
|||
<table> |
|||
<tr> |
|||
{% for item in tabela_resumo_camara.cabecalho_topo %} |
|||
<th>{{item}}</th> |
|||
{% endfor %} |
|||
</tr> |
|||
|
|||
{% for cabecalho,lista in tabela_resumo_camara.lista_zip %} |
|||
<tr> |
|||
<th>{{cabecalho}}</th> |
|||
{% for item in lista %} |
|||
<td>{{item}}</td> |
|||
{% endfor %} |
|||
</tr> |
|||
{% endfor %} |
|||
</table> |
|||
</div> |
|||
</div> |
|||
|
|||
<!--<div class="module"> |
|||
<h2>Convênios</h2> |
|||
<h3>Casas Legislativas conveniadas por região</h3> |
|||
<p class="align-center"> |
|||
<img src="{{ regioes.url }}" class="chart" /> |
|||
</p> |
|||
</div>--> |
|||
|
|||
<div class="module"> |
|||
<h2>Convênios</h2> |
|||
<h3>Casas Legislativas com equipamentos</h3> |
|||
<p class="align-center"> |
|||
<img src="{{ equipamentos.url }}" class="chart" /> |
|||
</p> |
|||
<h2>Convênios</h2> |
|||
<h3>Convênios assinados por projeto</h3> |
|||
<div class="align-center"> |
|||
<img src="{{ convenios_assinados.url }}" class="chart" /> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="module"> |
|||
<h2>Convênios</h2> |
|||
<h3>Convênios por projeto</h3> |
|||
<p class="align-center"> |
|||
<img src="{{ projetos.url }}" class="chart" /> |
|||
</p> |
|||
</div> |
|||
|
|||
<h2>Convênios</h2> |
|||
<h3>Processos de convênios por projeto</h3> |
|||
<div class="align-center"> |
|||
<img src="{{ processos.url }}" class="chart" /> |
|||
</div> |
|||
</div> |
Loading…
Reference in new issue