Browse Source

Add relatorio espelho

pull/202/head
Eduardo Edson Batista Cordeiro Alves 9 years ago
parent
commit
c52e0054ce
  1. 35
      relatorios/templates/pdf_espelho_gerar.py
  2. 4
      relatorios/urls.py
  3. 94
      relatorios/views.py

35
relatorios/templates/pdf_espelho_gerar.py

@ -1,4 +1,4 @@
##parameters=sessao,imagem,data,lst_materias,dic_cabecalho,lst_rodape,dic_filtro # parameters=sessao,imagem,data,lst_materias,dic_cabecalho,lst_rodape,dic_filtro
"""relatorio_materia.py """relatorio_materia.py
External method para gerar o arquivo rml do resultado de uma pesquisa de matérias External method para gerar o arquivo rml do resultado de uma pesquisa de matérias
@ -14,26 +14,34 @@ from trml2pdf import parseString
def cabecalho(dic_cabecalho, imagem): def cabecalho(dic_cabecalho, imagem):
"""Gera o codigo rml do cabecalho""" """Gera o codigo rml do cabecalho"""
tmp_data = '' tmp_data = ''
tmp_data+='\t\t\t\t<image x="2.1cm" y="25.7cm" width="59" height="62" file="' + imagem + '"/>\n' tmp_data += '\t\t\t\t<image x="2.1cm" y="25.7cm" width="59" height="62" file="' + \
imagem + '"/>\n'
tmp_data += '\t\t\t\t<lines>2cm 25cm 19cm 25cm</lines>\n' tmp_data += '\t\t\t\t<lines>2cm 25cm 19cm 25cm</lines>\n'
tmp_data += '\t\t\t\t<setFont name="Helvetica" size="18"/>\n' tmp_data += '\t\t\t\t<setFont name="Helvetica" size="18"/>\n'
tmp_data+='\t\t\t\t<drawString x="5cm" y="27.2cm">' + dic_cabecalho['nom_casa'] + '</drawString>\n' tmp_data += '\t\t\t\t<drawString x="5cm" y="27.2cm">' + \
dic_cabecalho['nom_casa'] + '</drawString>\n'
tmp_data += '\t\t\t\t<setFont name="Helvetica" size="16"/>\n' tmp_data += '\t\t\t\t<setFont name="Helvetica" size="16"/>\n'
tmp_data+='\t\t\t\t<drawString x="07cm" y="26.5cm">' + dic_cabecalho['nom_estado'] + '</drawString>\n' tmp_data += '\t\t\t\t<drawString x="07cm" y="26.5cm">' + \
dic_cabecalho['nom_estado'] + '</drawString>\n'
tmp_data += '\t\t\t\t<setFont name="Helvetica" size="15"/>\n' tmp_data += '\t\t\t\t<setFont name="Helvetica" size="15"/>\n'
tmp_data += '\t\t\t\t<drawCentredString x="10.5cm" y="25.2cm">SECRETARIA</drawCentredString>\n' tmp_data += '\t\t\t\t<drawCentredString x="10.5cm" y="25.2cm">SECRETARIA</drawCentredString>\n'
return tmp_data return tmp_data
def rodape(lst_rodape): def rodape(lst_rodape):
"""Gera o codigo rml do rodape""" """Gera o codigo rml do rodape"""
tmp_data = '' tmp_data = ''
tmp_data += '\t\t\t\t<lines>2cm 3.2cm 19cm 3.2cm</lines>\n' tmp_data += '\t\t\t\t<lines>2cm 3.2cm 19cm 3.2cm</lines>\n'
tmp_data += '\t\t\t\t<setFont name="Helvetica" size="8"/>\n' tmp_data += '\t\t\t\t<setFont name="Helvetica" size="8"/>\n'
tmp_data+='\t\t\t\t<drawString x="2cm" y="3.3cm">' + lst_rodape[2] + '</drawString>\n' tmp_data += '\t\t\t\t<drawString x="2cm" y="3.3cm">' + \
tmp_data+='\t\t\t\t<drawCentredString x="10.5cm" y="2.7cm">' + lst_rodape[0] + '</drawCentredString>\n' lst_rodape[2] + '</drawString>\n'
tmp_data+='\t\t\t\t<drawCentredString x="10.5cm" y="2.3cm">' + lst_rodape[1] + '</drawCentredString>\n' tmp_data += '\t\t\t\t<drawCentredString x="10.5cm" y="2.7cm">' + \
lst_rodape[0] + '</drawCentredString>\n'
tmp_data += '\t\t\t\t<drawCentredString x="10.5cm" y="2.3cm">' + \
lst_rodape[1] + '</drawCentredString>\n'
return tmp_data return tmp_data
def paraStyle(): def paraStyle():
"""Gera o codigo rml que define o estilo dos paragrafos""" """Gera o codigo rml que define o estilo dos paragrafos"""
tmp_data = '' tmp_data = ''
@ -50,6 +58,7 @@ def paraStyle():
tmp_data += '\t</stylesheet>\n' tmp_data += '\t</stylesheet>\n'
return tmp_data return tmp_data
def materias(lst_materias): def materias(lst_materias):
"""Gera o codigo rml do conteudo da pesquisa de materias""" """Gera o codigo rml do conteudo da pesquisa de materias"""
@ -81,26 +90,30 @@ def materias(lst_materias):
tmp_data += '\t\t<para style="P2">\n' tmp_data += '\t\t<para style="P2">\n'
tmp_data += '\t\t\t<font color="white"> </font>\n' tmp_data += '\t\t\t<font color="white"> </font>\n'
tmp_data += '\t\t</para>\n' tmp_data += '\t\t</para>\n'
tmp_data+='\t\t<para style="P2"><b>INDICAÇÃO:</b> ' + dic['materia'] + '</para>\n' tmp_data += '\t\t<para style="P2"><b>INDICAÇÃO:</b> ' + \
dic['materia'] + '</para>\n'
tmp_data += '\t\t<para style="P2">\n' tmp_data += '\t\t<para style="P2">\n'
tmp_data += '\t\t\t<font color="white"> </font>\n' tmp_data += '\t\t\t<font color="white"> </font>\n'
tmp_data += '\t\t</para>\n' tmp_data += '\t\t</para>\n'
if dic['dat_apresentacao'] != None: if dic['dat_apresentacao'] != None:
tmp_data+='\t\t<para style="P2"><b>DATA DE ENTRADA:</b> ' + dic['dat_apresentacao'] + '</para>\n' tmp_data += '\t\t<para style="P2"><b>DATA DE ENTRADA:</b> ' + \
dic['dat_apresentacao'] + '</para>\n'
tmp_data += '\t\t<para style="P2">\n' tmp_data += '\t\t<para style="P2">\n'
tmp_data += '\t\t\t<font color="white"> </font>\n' tmp_data += '\t\t\t<font color="white"> </font>\n'
tmp_data += '\t\t</para>\n' tmp_data += '\t\t</para>\n'
if dic['nom_autor'] != None: if dic['nom_autor'] != None:
tmp_data+='\t\t<para style="P2"><b>AUTOR:</b> ' + dic['nom_autor'] + '</para>\n' tmp_data += '\t\t<para style="P2"><b>AUTOR:</b> ' + \
dic['nom_autor'] + '</para>\n'
tmp_data += '\t\t<para style="P2">\n' tmp_data += '\t\t<para style="P2">\n'
tmp_data += '\t\t\t<font color="white"> </font>\n' tmp_data += '\t\t\t<font color="white"> </font>\n'
tmp_data += '\t\t</para>\n' tmp_data += '\t\t</para>\n'
if dic['txt_ementa'] != None: if dic['txt_ementa'] != None:
txt_ementa = dic['txt_ementa'].replace('&', '&amp;') txt_ementa = dic['txt_ementa'].replace('&', '&amp;')
tmp_data+='\t\t<para style="P2"><b>EMENTA:</b> ' + dic['txt_ementa'] + '</para>\n' tmp_data += '\t\t<para style="P2"><b>EMENTA:</b> ' + \
dic['txt_ementa'] + '</para>\n'
tmp_data += '\t\t<para style="P2">\n' tmp_data += '\t\t<para style="P2">\n'
tmp_data += '\t\t\t<font color="white"> </font>\n' tmp_data += '\t\t\t<font color="white"> </font>\n'
tmp_data += '\t\t</para>\n' tmp_data += '\t\t</para>\n'

4
relatorios/urls.py

@ -1,7 +1,7 @@
from django.conf.urls import url from django.conf.urls import url
from .views import (relatorio_documento_administrativo, relatorio_materia, from .views import (relatorio_documento_administrativo, relatorio_materia,
relatorio_ordem_dia, relatorio_processo) relatorio_ordem_dia, relatorio_processo, relatorio_espelho)
urlpatterns = [ urlpatterns = [
url(r'^relatorios/materia$', relatorio_materia, name='relatorio_materia'), url(r'^relatorios/materia$', relatorio_materia, name='relatorio_materia'),
@ -12,5 +12,7 @@ urlpatterns = [
url(r'^relatorios/relatorio_documento_administrativo$', url(r'^relatorios/relatorio_documento_administrativo$',
relatorio_documento_administrativo, relatorio_documento_administrativo,
name='relatorio_documento_administrativo'), name='relatorio_documento_administrativo'),
url(r'^relatorios/espelho$', relatorio_espelho,
name='relatorio_espelho'),
] ]

94
relatorios/views.py

@ -13,7 +13,8 @@ from protocoloadm.models import (DocumentoAdministrativo, Protocolo,
from sessao.models import OrdemDia, SessaoPlenaria from sessao.models import OrdemDia, SessaoPlenaria
from .templates import (pdf_capa_processo_gerar, from .templates import (pdf_capa_processo_gerar,
pdf_documento_administrativo_gerar, pdf_materia_gerar) pdf_documento_administrativo_gerar, pdf_espelho_gerar,
pdf_materia_gerar)
def get_cabecalho(casa): def get_cabecalho(casa):
@ -434,3 +435,94 @@ def get_documento_administrativo(docs):
documentos.append(dic) documentos.append(dic)
return documentos return documentos
def relatorio_espelho(request):
'''
pdf_espelho_gerar.py
'''
response = HttpResponse(content_type='application/pdf')
response['Content-Disposition'] = 'attachment; filename="somefilename.pdf"'
casa = CasaLegislativa.objects.first()
cabecalho = get_cabecalho(casa)
rodape = get_rodape(casa)
imagem = get_imagem(casa)
mats = MateriaLegislativa.objects.all()[:50]
mat_pdf = get_espelho(mats)
pdf = pdf_espelho_gerar.principal(
None,
imagem,
None,
mat_pdf,
cabecalho,
rodape)
response.write(pdf)
return response
def get_espelho(mats):
materias = []
for m in mats:
dic = {}
dic['titulo'] = str(m)
dic['materia'] = str(m.numero) + '/' + str(m.ano)
dic['dat_apresentacao'] = str(m.data_apresentacao)
dic['txt_ementa'] = m.ementa
dic['nom_autor'] = ' '
for autoria in Autoria.objects.filter(materia=m, primeiro_autor=True):
for autor in Autor.objects.filter(id=autoria.autor.id):
if autor.tipo == 'Parlamentar':
for parlamentar in Parlamentar.objects.filter(
id=autor.parlamentar.id):
dic['nom_autor'] = parlamentar.nome_completo
elif autor.tipo == 'Comissao':
for comissao in Comissao.objects.filter(
id=autor.comissao.id):
dic['nom_autor'] = str(comissao)
else:
dic['nom_autor'] = autor.nome
des_status = ''
txt_tramitacao = ''
data_ultima_acao = ''
dic['localizacao_atual'] = " "
for tramitacao in Tramitacao.objects.filter(materia=m):
if tramitacao.unidade_tramitacao_destino:
cod_unid_tram = tramitacao.unidade_tramitacao_destino
else:
cod_unid_tram = tramitacao.unidade_tramitacao_local
for unidade_tramitacao in UnidadeTramitacao.objects.filter(
id=cod_unid_tram.id):
if unidade_tramitacao.orgao:
dic['localizacao_atual'] = unidade_tramitacao.orgao
elif unidade_tramitacao.parlamentar:
dic['localizacao_atual'] = unidade_tramitacao.parlamentar
else:
dic['localizacao_atual'] = unidade_tramitacao.comissao
des_status = tramitacao.status
txt_tramitacao = tramitacao.texto
data_ultima_acao = tramitacao.data_tramitacao
dic['des_situacao'] = des_status
dic['ultima_acao'] = txt_tramitacao
dic['data_ultima_acao'] = data_ultima_acao
dic['norma_juridica_vinculada'] = 'Não há nenhuma\
norma jurídica vinculada'
# TODO
# for norma in context.zsql.materia_buscar_norma_juridica_zsql(cod_materia=materia.cod_materia):
# dic['norma_juridica_vinculada'] = norma.des_norma + " " + \
# str(norma.num_norma) + "/" + str(norma.ano_norma)
materias.append(dic)
return materias

Loading…
Cancel
Save