Browse Source

acrescentando botoes de geracao de PDF sem data de aceite em url.py

diagnosticos
Starlone (Estagiario) 14 years ago
parent
commit
eb43845f9d
  1. 151
      sigi/context_processors.py
  2. 4
      sigi/settings.py
  3. 91
      sigi/templates/snippets/modules/charts-convenios.html
  4. 5
      sigi/urls.py

151
sigi/context_processors.py

@ -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()
)
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)
# 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]
# 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'
)
# 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
linhas = (
lista_total,
lista_nao_aderidas,
lista_aderidas,
lista_convenios_assinados,
lista_convenios_em_andamento,
lista_camaras_equipadas,
)
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()
# 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

4
sigi/settings.py

@ -25,10 +25,10 @@ INTERNAL_IPS = ('127.0.0.1',)
DATABASE_ENGINE = 'postgresql_psycopg2'
#DATABASE_ENGINE = 'sqlite3'
DATABASE_NAME = 'sigi'
DATABASE_NAME = 'sigi3'
DATABASE_USER = 'administrador'
DATABASE_PASSWORD = 'interlegis'
DATABASE_HOST = 'banco'
DATABASE_HOST = '10.1.10.102'
DATABASE_PORT = '5432'
TIME_ZONE = 'Brazil/East'

91
sigi/templates/snippets/modules/charts-convenios.html

@ -1,75 +1,60 @@
{% load charts %}
{% chart as convenios %}
{% chart as convenios_assinados %}
{% chart-size 440 160 %}
{% chart-type "pie-3d" %}
{% chart-labels convenios_chart_data %}
{% chart-legend "Convêniadas" "Aderidas" %}
{% chart-data convenios_chart_data %}
{% 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 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-size 440 160 %}
{% chart-type "pie-3d" %}
{% chart-labels equipamentos_chart_data %}
{% chart-data equipamentos_chart_data %}
{% chart-legend "Recebidos" "Não recebidos" %}
{% chart-colors "A2CD5A,FFB90F,6CA6CD" %}
{% 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>
<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>
<h3>Processos de convênios por projeto</h3>
<div class="align-center">
<img src="{{ processos.url }}" class="chart" />
</div>
</div>

5
sigi/urls.py

@ -34,6 +34,11 @@ urlpatterns = patterns(
'sigi.apps.convenios.views.report_por_al'),
(r'^convenios/convenio/reportsRegiao/(?P<regiao>\w+)',
'sigi.apps.convenios.views.report_regiao'),
#reports sem data de aceite
(r'^convenios/convenio/report_semaceite_por_cm/',
'sigi.apps.convenios.views.report_semaceite_por_cm'),
(r'^convenios/convenio/report_semaceite_por_al/',
'sigi.apps.convenios.views.report_semaceite_por_al'),
# automatic interface based on admin
(r'^(.*)', sites.default.root),
)

Loading…
Cancel
Save