Browse Source

Atualizando relatorio por regiao. Dividido por projetos.

diagnosticos
Starlone (Estagiario) 14 years ago
parent
commit
b2b3f4e402
  1. 2
      sigi/apps/convenios/admin.py
  2. 7
      sigi/apps/convenios/templates/convenios/tabela_regiao.html
  3. 142
      sigi/apps/convenios/views.py

2
sigi/apps/convenios/admin.py

@ -50,7 +50,7 @@ class ConvenioAdmin(admin.ModelAdmin):
actions = ['adicionar_convenios'] actions = ['adicionar_convenios']
inlines = (TramitacaoInline, AnexosInline, EquipamentoPrevistoInline) inlines = (TramitacaoInline, AnexosInline, EquipamentoPrevistoInline)
list_display = ('num_convenio', 'casa_legislativa', list_display = ('num_convenio', 'casa_legislativa',
'data_adesao','data_retorno_assinatura','data_termo_aceite', 'data_adesao','data_retorno_assinatura','data_pub_diario','data_termo_aceite',
'projeto', 'projeto',
) )
list_display_links = ('num_convenio','casa_legislativa',) list_display_links = ('num_convenio','casa_legislativa',)

7
sigi/apps/convenios/templates/convenios/tabela_regiao.html

@ -99,11 +99,12 @@
<td id="imagem2"><img src="../media/images/logo-interlegis.jpg" width="90" height="65" alt="Logo Interlegis"/></td> <td id="imagem2"><img src="../media/images/logo-interlegis.jpg" width="90" height="65" alt="Logo Interlegis"/></td>
</tr> </tr>
</table> </table>
<h1 class="titulo">{{tabela.regiao}}</h1> <h1 class="titulo">{{regiao}}</h1>
</div> </div>
<div id="midle"> <div id="midle">
{% for tabela in tabelas %}
<table class="tabela" repeat="1"> <table class="tabela" repeat="1">
<caption>{{tabela.projeto}} - {{tabela.regiao}}</caption> <caption>{{tabela.projeto}} - {{regiao}}</caption>
<thead> <thead>
<tr> <tr>
{%for item in tabela.cabecalho%} {%for item in tabela.cabecalho%}
@ -128,6 +129,8 @@
</tr> </tr>
</tbody> </tbody>
</table> </table>
<br />
{% endfor %}
</div> </div>
<div id="footerContent"> <div id="footerContent">
<table> <table>

142
sigi/apps/convenios/views.py

@ -2,7 +2,7 @@
from django.http import HttpResponse, HttpResponseRedirect from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import render_to_response, get_list_or_404 from django.shortcuts import render_to_response, get_list_or_404
from geraldo.generators import PDFGenerator from geraldo.generators import PDFGenerator
from sigi.apps.convenios.models import Convenio from sigi.apps.convenios.models import Convenio, Projeto
from sigi.apps.convenios.reports import ConvenioReport \ from sigi.apps.convenios.reports import ConvenioReport \
,ConvenioPorCMReport \ ,ConvenioPorCMReport \
,ConvenioPorALReport \ ,ConvenioPorALReport \
@ -175,34 +175,9 @@ def report(request, id=None):
return HttpResponseRedirect('../') return HttpResponseRedirect('../')
return response return response
def report_regiao(request,regiao='NE'): def casas_estado_to_tabela(casas,convenios,regiao):
if request.POST:
if request.POST.has_key('regiao'):
regiao = request.POST['regiao']
REGIAO_CHOICES = {
'SL': 'Sul',
'SD': 'Sudeste',
'CO': 'Centro-Oeste',
'NE': 'Nordeste',
'NO': 'Norte',
}
camaras = CasaLegislativa.objects.filter(tipo__sigla='CM')
convenios = Convenio.objects.filter(casa_legislativa__tipo__sigla='CM',projeto__sigla='PI')
camaras_sem_processo = camaras.exclude(convenio__projeto__sigla='PI')
convenios_assinados = convenios.exclude(data_retorno_assinatura=None)
convenios_em_andamento = convenios.filter(data_retorno_assinatura=None)
convenios_sem_adesao = convenios.filter(data_adesao=None)
convenios_com_adesao = convenios.exclude(data_adesao=None)
convenios_com_aceite = convenios.exclude(data_termo_aceite=None)
# Contando casas por estado
estados = get_list_or_404(UnidadeFederativa,regiao=regiao) estados = get_list_or_404(UnidadeFederativa,regiao=regiao)
class LinhaEstado(): class LinhaEstado():
@ -212,83 +187,90 @@ def report_regiao(request,regiao='NE'):
for estado in estados: for estado in estados:
linha = LinhaEstado() linha = LinhaEstado()
conv_sem_adesao_est = convenios_sem_adesao.filter(casa_legislativa__municipio__uf=estado)
conv_com_adesao_est = convenios_com_adesao.filter(casa_legislativa__municipio__uf=estado) convenios_est = convenios.filter(casa_legislativa__municipio__uf=estado)
conv_assinados_est = convenios_assinados.filter(casa_legislativa__municipio__uf=estado) convenios_est_publicados = convenios_est.exclude(data_pub_diario=None)
conv_em_andamento_est = convenios_em_andamento.filter(casa_legislativa__municipio__uf=estado)
conv_equipadas_est = convenios_com_aceite.filter(casa_legislativa__municipio__uf=estado) casas_est = casas.filter(municipio__uf=estado)
casas_est_nao_aderidas = casas_est.exclude(convenio__in=convenios_est).distinct()
camaras_est = camaras.filter(municipio__uf=estado,tipo__sigla='CM').count() casas_est_aderidas = casas_est.filter(convenio__in=convenios_est).distinct()
camaras_sem_processo_est = camaras_sem_processo.filter(municipio__uf=estado).count() casas_est_conveniadas = casas_est.filter(convenio__in=convenios_est_publicados).distinct()
camaras_nao_aderidas_est = camaras.filter(convenio__in=conv_sem_adesao_est).count()
camaras_aderidas_est = camaras.filter(convenio__in=conv_com_adesao_est).count()
camaras_convenios_assinados_est = camaras.filter(convenio__in=conv_assinados_est).count()
camaras_convenios_em_andamento_est = camaras.filter(convenio__in=conv_em_andamento_est).count()
camaras_equipadas_est = camaras.filter(convenio__in=conv_equipadas_est).count()
linha.lista = ( linha.lista = (
camaras_est, casas_est.count(),
camaras_sem_processo_est, casas_est_nao_aderidas.count(),
camaras_nao_aderidas_est, casas_est_aderidas.count(),
camaras_aderidas_est, casas_est_conveniadas.count(),
camaras_convenios_assinados_est,
camaras_convenios_em_andamento_est,
camaras_equipadas_est,
) )
linha.estado = estado.sigla linha.estado = estado
lista.append(linha) lista.append(linha)
# Total
total_cm = camaras.filter(municipio__uf__regiao=regiao,tipo__sigla='CM').count()
total_sem_processo = camaras_sem_processo.filter(municipio__uf__regiao=regiao).count()
total_sem_adesao = camaras.filter(convenio__in=convenios_sem_adesao,municipio__uf__regiao=regiao).count()
total_com_adesao = camaras.filter(convenio__in=convenios_com_adesao,municipio__uf__regiao=regiao).count()
total_conv_assin = camaras.filter(convenio__in=convenios_assinados,municipio__uf__regiao=regiao).count()
total_conv_andam = camaras.filter(convenio__in=convenios_em_andamento,municipio__uf__regiao=regiao).count()
total_equipadas = camaras.filter(convenio__in=convenios_com_aceite,municipio__uf__regiao=regiao).count()
sumario = [
total_cm,
total_sem_processo,
total_sem_adesao,
total_com_adesao,
total_conv_assin,
total_conv_andam,
total_equipadas,
]
casas_regiao = casas.filter(municipio__uf__regiao=regiao)
convenios_regiao = convenios.filter(casa_legislativa__municipio__uf__regiao=regiao)
convenios_regiao_publicados = convenios_regiao.exclude(data_pub_diario=None)
sumario = (
casas_regiao.count(),
casas_regiao.exclude(convenio__in=convenios_regiao).distinct().count(),
casas_regiao.filter(convenio__in=convenios_regiao).distinct().count(),
casas_regiao.filter(convenio__in=convenios_regiao_publicados).distinct().count(),
)
cabecalho_topo = ( cabecalho_topo = (
u'UF', u'UF',
u'Câmaras municipais', u'Câmaras municipais',
u'Sem processo', u'Não Aderidas',
u'Sem adesão', u'Aderidas',
u'Com adesão', u'Conveniadas',
u'Convênios assinados',
u'Convênios andamento',
u'Equipadas'
) )
projeto = "Projeto Interlegis" return {
tabela = {
"regiao":REGIAO_CHOICES[regiao],
"linhas":lista, "linhas":lista,
"cabecalho":cabecalho_topo, "cabecalho":cabecalho_topo,
"sumario":sumario, "sumario":sumario,
"projeto":projeto,
} }
def report_regiao(request,regiao='NE'):
if request.POST:
if request.POST.has_key('regiao'):
regiao = request.POST['regiao']
REGIAO_CHOICES = {
'SL': 'Sul',
'SD': 'Sudeste',
'CO': 'Centro-Oeste',
'NE': 'Nordeste',
'NO': 'Norte',
}
projetos = Projeto.objects.all()
camaras = CasaLegislativa.objects.filter(tipo__sigla='CM')
tabelas = list()
# Geral
convenios = Convenio.objects.filter(casa_legislativa__tipo__sigla='CM')
tabela = casas_estado_to_tabela(camaras,convenios,regiao)
tabela["projeto"] = "Geral"
tabelas.append(tabela)
for projeto in projetos:
convenios_proj = convenios.filter(projeto=projeto)
tabela = casas_estado_to_tabela(camaras, convenios_proj,regiao)
tabela["projeto"] = projeto.nome
tabelas.append(tabela)
data = datetime.datetime.now().strftime('%d/%m/%Y') data = datetime.datetime.now().strftime('%d/%m/%Y')
hora = datetime.datetime.now().strftime('%H:%M') hora = datetime.datetime.now().strftime('%H:%M')
pisa.showLogging() pisa.showLogging()
response = HttpResponse(mimetype='application/pdf') response = HttpResponse(mimetype='application/pdf')
response['Content-Disposition'] = 'attachment; filename=RelatorioRegiao_' + regiao + '.pdf' response['Content-Disposition'] = 'attachment; filename=RelatorioRegiao_' + regiao + '.pdf'
#tabelas = ({'projeto':"PI"},{'projeto':"PML"},)
t = loader.get_template('convenios/tabela_regiao.html') t = loader.get_template('convenios/tabela_regiao.html')
c = Context({'tabela':tabela,'data':data,'hora':hora}) c = Context({'tabelas':tabelas,'regiao':REGIAO_CHOICES[regiao],'data':data,'hora':hora})
pdf = pisa.CreatePDF(t.render(c),response) pdf = pisa.CreatePDF(t.render(c),response)
if not pdf.err: if not pdf.err:
pisa.startViewer(response) pisa.startViewer(response)

Loading…
Cancel
Save