Browse Source

Add sessao_plenaria report

pull/202/head
Eduardo Edson Batista Cordeiro Alves 9 years ago
parent
commit
8cee762eca
  1. 369
      relatorios/templates/pdf_sessao_plenaria_gerar.py
  2. 2
      relatorios/urls.py
  3. 520
      relatorios/views.py

369
relatorios/templates/pdf_sessao_plenaria_gerar.py

@ -9,272 +9,287 @@ import time
from trml2pdf import parseString from trml2pdf import parseString
def cabecalho(inf_basicas_dic,imagem): def cabecalho(inf_basicas_dic, imagem):
""" """
""" """
tmp='' tmp = ''
tmp+='\t\t\t\t<image x="2.1cm" y="25.7cm" width="59" height="62" file="' + imagem + '"/>\n' tmp += '\t\t\t\t<image x="2.1cm" y="25.7cm" width="59" height="62" file="' + \
tmp+='\t\t\t\t<lines>2cm 25.4cm 19cm 25.4cm</lines>\n' imagem + '"/>\n'
tmp+='\t\t\t\t<setFont name="Helvetica-Bold" size="16"/>\n' tmp += '\t\t\t\t<lines>2cm 25.4cm 19cm 25.4cm</lines>\n'
tmp+='\t\t\t\t<drawString x="5cm" y="27.1cm">' + str(inf_basicas_dic["nom_camara"]) + '</drawString>\n' tmp += '\t\t\t\t<setFont name="Helvetica-Bold" size="16"/>\n'
tmp+='\t\t\t\t<setFont name="Helvetica" size="12"/>\n' tmp += '\t\t\t\t<drawString x="5cm" y="27.1cm">' + \
tmp+='\t\t\t\t<drawString x="5cm" y="26.6cm">Sistema de Apoio ao Processo Legislativo</drawString>\n' str(inf_basicas_dic["nom_camara"]) + '</drawString>\n'
tmp+='\t\t\t\t<setFont name="Helvetica-Bold" size="12"/>\n' tmp += '\t\t\t\t<setFont name="Helvetica" size="12"/>\n'
tmp+='\t\t\t\t<drawString x="2.2cm" y="24.6cm">Resumo da ' + str(inf_basicas_dic['num_sessao_plen']) + 'ª Reunião ' + str(inf_basicas_dic['nom_sessao']) + ' da ' + str(inf_basicas_dic['num_sessao_leg']) + 'ª Sessão Legislativa da ' + str(inf_basicas_dic['num_legislatura']) + 'ª Legislatura </drawString>\n' tmp += '\t\t\t\t<drawString x="5cm" y="26.6cm">Sistema de Apoio ao Processo Legislativo</drawString>\n'
tmp += '\t\t\t\t<setFont name="Helvetica-Bold" size="12"/>\n'
tmp += '\t\t\t\t<drawString x="2.2cm" y="24.6cm">Resumo da ' + str(inf_basicas_dic['num_sessao_plen']) + 'ª Reunião ' + str(inf_basicas_dic['nom_sessao']) + ' da ' + str(
inf_basicas_dic['num_sessao_leg']) + 'ª Sessão Legislativa da ' + str(inf_basicas_dic['num_legislatura']) + 'ª Legislatura </drawString>\n'
return tmp return tmp
def rodape(rodape_dic):
"""
"""
tmp=''
linha1 = rodape_dic['end_casa']
linha2 = ''
if rodape_dic['end_casa']!="" and rodape_dic['end_casa']!=None:
linha1 = linha1 + " - "
if rodape_dic['num_cep']!="" and rodape_dic['num_cep']!=None:
linha1 = linha1 + "CEP " + rodape_dic['num_cep']
if rodape_dic['nom_localidade']!="" and rodape_dic['nom_localidade']!=None:
linha1 = linha1 + " - " + rodape_dic['nom_localidade']
if rodape_dic['sgl_uf']!="" and rodape_dic['sgl_uf']!=None:
linha1 = linha1 + " " + rodape_dic['sgl_uf']
if rodape_dic['num_tel']!="" and rodape_dic['num_tel']!=None:
linha1 = linha1 + " Tel: "+ rodape_dic['num_tel']
if rodape_dic['end_web_casa']!="" and rodape_dic['end_web_casa']!=None:
linha2 = rodape_dic['end_web_casa']
if rodape_dic['end_email_casa']!="" and rodape_dic['end_email_casa']!=None:
linha2 = linha2 + " - E-mail: " + rodape_dic['end_email_casa']
if rodape_dic['data_emissao']!="" and rodape_dic['data_emissao']!=None:
data_emissao = rodape_dic['data_emissao']
tmp+='\t\t\t\t<lines>2cm 3.2cm 19cm 3.2cm</lines>\n'
tmp+='\t\t\t\t<setFont name="Helvetica" size="8"/>\n'
tmp+='\t\t\t\t<drawString x="2cm" y="3.3cm">' + data_emissao + '</drawString>\n'
tmp+='\t\t\t\t<drawString x="17.9cm" y="3.3cm">Página <pageNumber/></drawString>\n'
tmp+='\t\t\t\t<drawCentredString x="10.5cm" y="2.7cm">' + linha1 + '</drawCentredString>\n'
tmp+='\t\t\t\t<drawCentredString x="10.5cm" y="2.3cm">' + linha2 + '</drawCentredString>\n'
def rodape(rodape_dic):
tmp = ''
tmp += '\t\t\t\t<lines>2cm 3.2cm 19cm 3.2cm</lines>\n'
tmp += '\t\t\t\t<setFont name="Helvetica" size="8"/>\n'
tmp += '\t\t\t\t<drawString x="2cm" y="3.3cm">' + \
rodape_dic[2] + '</drawString>\n'
tmp += '\t\t\t\t<drawString x="17.9cm" y="3.3cm">Página <pageNumber/></drawString>\n'
tmp += '\t\t\t\t<drawCentredString x="10.5cm" y="2.7cm">' + \
rodape_dic[0] + '</drawCentredString>\n'
tmp += '\t\t\t\t<drawCentredString x="10.5cm" y="2.3cm">' + \
rodape_dic[1] + '</drawCentredString>\n'
return tmp return tmp
def paraStyle(): def paraStyle():
""" """
""" """
tmp='' tmp = ''
tmp+='\t<stylesheet>\n' tmp += '\t<stylesheet>\n'
tmp+='\t\t<blockTableStyle id="repeater" spaceBefore="12">\n' tmp += '\t\t<blockTableStyle id="repeater" spaceBefore="12">\n'
tmp+='\t\t\t<lineStyle kind="OUTLINE" colorName="black" thickness="0.5"/>\n' tmp += '\t\t\t<lineStyle kind="OUTLINE" colorName="black" thickness="0.5"/>\n'
tmp+='\t\t\t<lineStyle kind="GRID" colorName="gray" thickness="0.25"/>\n' tmp += '\t\t\t<lineStyle kind="GRID" colorName="gray" thickness="0.25"/>\n'
tmp+='\t\t\t<blockFont name="Helvetica-Bold" size="8" leading="8" start="0,0" stop="-1,0"/>\n' tmp += '\t\t\t<blockFont name="Helvetica-Bold" size="8" leading="8" start="0,0" stop="-1,0"/>\n'
tmp+='\t\t\t<blockBottomPadding length="1"/>\n' tmp += '\t\t\t<blockBottomPadding length="1"/>\n'
tmp+='\t\t\t<blockBackground colorName="silver" start="0,0" stop="-1,0"/>\n' tmp += '\t\t\t<blockBackground colorName="silver" start="0,0" stop="-1,0"/>\n'
tmp+='\t\t\t<lineStyle kind="LINEBELOW" colorName="black" start="0,0" stop="-1,0" thickness="0.5"/>\n' tmp += '\t\t\t<lineStyle kind="LINEBELOW" colorName="black" start="0,0" stop="-1,0" thickness="0.5"/>\n'
tmp+='\t\t\t<!--body section-->\n' tmp += '\t\t\t<!--body section-->\n'
tmp+='\t\t\t<blockFont name="Helvetica" size="8" leading="9" start="0,1" stop="-1,-1"/>\n' tmp += '\t\t\t<blockFont name="Helvetica" size="8" leading="9" start="0,1" stop="-1,-1"/>\n'
tmp+='\t\t\t<blockTopPadding length="1" start="0,1" stop="-1,-1"/>\n' tmp += '\t\t\t<blockTopPadding length="1" start="0,1" stop="-1,-1"/>\n'
tmp+='\t\t\t<blockAlignment value="LEFT" start="1,1" stop="-1,-1"/>\n' tmp += '\t\t\t<blockAlignment value="LEFT" start="1,1" stop="-1,-1"/>\n'
tmp+='\t\t\t<blockValign value="TOP"/>\n' tmp += '\t\t\t<blockValign value="TOP"/>\n'
tmp+='\t\t</blockTableStyle>\n' tmp += '\t\t</blockTableStyle>\n'
tmp+='\t\t<blockTableStyle id="votacao">\n' tmp += '\t\t<blockTableStyle id="votacao">\n'
tmp+='\t\t\t<blockFont name="Helvetica" size="8" leading="9" start="0,0" stop="-1,0"/>\n' tmp += '\t\t\t<blockFont name="Helvetica" size="8" leading="9" start="0,0" stop="-1,0"/>\n'
tmp+='\t\t\t<blockBackground colorName="silver" start="0,0" stop="3,0" />\n' tmp += '\t\t\t<blockBackground colorName="silver" start="0,0" stop="3,0" />\n'
tmp+='\t\t\t<lineStyle kind="GRID" colorName="silver" />\n' tmp += '\t\t\t<lineStyle kind="GRID" colorName="silver" />\n'
tmp+='\t\t\t<lineStyle kind="LINEBELOW" colorName="black" start="0,0" stop="-1,0" thickness="0.5"/>\n' tmp += '\t\t\t<lineStyle kind="LINEBELOW" colorName="black" start="0,0" stop="-1,0" thickness="0.5"/>\n'
tmp +='\t\t\t<blockAlignment value="LEFT"/>\n' tmp += '\t\t\t<blockAlignment value="LEFT"/>\n'
tmp+='\t\t\t<blockValign value="TOP"/>\n' tmp += '\t\t\t<blockValign value="TOP"/>\n'
tmp+='\t\t</blockTableStyle>\n' tmp += '\t\t</blockTableStyle>\n'
tmp+='\t\t<initialize>\n' tmp += '\t\t<initialize>\n'
tmp+='\t\t\t<paraStyle name="all" alignment="justify"/>\n' tmp += '\t\t\t<paraStyle name="all" alignment="justify"/>\n'
tmp+='\t\t</initialize>\n' tmp += '\t\t</initialize>\n'
tmp+='\t\t<paraStyle name="style.Title" fontName="Helvetica" fontSize="11" leading="13" alignment="RIGHT"/>\n' tmp += '\t\t<paraStyle name="style.Title" fontName="Helvetica" fontSize="11" leading="13" alignment="RIGHT"/>\n'
tmp+='\t\t<paraStyle name="P1" fontName="Helvetica-Bold" fontSize="12.0" textColor="gray" leading="14" spaceBefore="12" alignment="LEFT"/>\n' tmp += '\t\t<paraStyle name="P1" fontName="Helvetica-Bold" fontSize="12.0" textColor="gray" leading="14" spaceBefore="12" alignment="LEFT"/>\n'
tmp+='\t\t<paraStyle name="P2" fontName="Helvetica" fontSize="10.0" leading="10" alignment="JUSTIFY"/>\n' tmp += '\t\t<paraStyle name="P2" fontName="Helvetica" fontSize="10.0" leading="10" alignment="JUSTIFY"/>\n'
tmp+='\t\t<paraStyle name="P3" fontName="Helvetica" fontSize="9" leading="10" spaceAfter="3" alignment="LEFT"/>\n' tmp += '\t\t<paraStyle name="P3" fontName="Helvetica" fontSize="9" leading="10" spaceAfter="3" alignment="LEFT"/>\n'
tmp+='\t\t<paraStyle name="P4" fontName="Helvetica" fontSize="8" leading="9" spaceAfter="3" alignment="JUSTIFY"/>\n' tmp += '\t\t<paraStyle name="P4" fontName="Helvetica" fontSize="8" leading="9" spaceAfter="3" alignment="JUSTIFY"/>\n'
tmp+='\t\t<paraStyle name="texto_projeto" fontName="Helvetica" fontSize="12.0" leading="12" spaceAfter="10" alignment="JUSTIFY"/>\n' tmp += '\t\t<paraStyle name="texto_projeto" fontName="Helvetica" fontSize="12.0" leading="12" spaceAfter="10" alignment="JUSTIFY"/>\n'
tmp+='\t\t<paraStyle name="numOrdem" alignment="CENTER"/>\n' tmp += '\t\t<paraStyle name="numOrdem" alignment="CENTER"/>\n'
tmp+='\t</stylesheet>\n' tmp += '\t</stylesheet>\n'
return tmp return tmp
def inf_basicas(inf_basicas_dic): def inf_basicas(inf_basicas_dic):
""" """
""" """
tmp="" tmp = ""
nom_sessao = inf_basicas_dic['nom_sessao'] nom_sessao = inf_basicas_dic['nom_sessao']
num_sessao_plen = inf_basicas_dic["num_sessao_plen"] num_sessao_plen = inf_basicas_dic["num_sessao_plen"]
num_sessao_leg = inf_basicas_dic["num_sessao_leg"] num_sessao_leg = inf_basicas_dic["num_sessao_leg"]
num_legislatura = inf_basicas_dic["num_legislatura"] num_legislatura = inf_basicas_dic["num_legislatura"]
dat_inicio_sessao = inf_basicas_dic["dat_inicio_sessao"] dat_inicio_sessao = inf_basicas_dic["dat_inicio_sessao"]
hr_inicio_sessao = inf_basicas_dic["hr_inicio_sessao"] hr_inicio_sessao = inf_basicas_dic["hr_inicio_sessao"]
dat_fim_sessao = inf_basicas_dic["dat_fim_sessao"] dat_fim_sessao = inf_basicas_dic["dat_fim_sessao"]
hr_fim_sessao = inf_basicas_dic["hr_fim_sessao"] hr_fim_sessao = inf_basicas_dic["hr_fim_sessao"]
if hr_fim_sessao is None: if hr_fim_sessao is None:
hr_fim_sessao = '' hr_fim_sessao = ''
tmp+='\t\t<para style="P1">Informações Básicas</para>\n' tmp += '\t\t<para style="P1">Informações Básicas</para>\n'
tmp+='\t\t<para style="P2">\n' tmp += '\t\t<para style="P2">\n'
tmp+='\t\t\t<font color="white"> </font>\n' tmp += '\t\t\t<font color="white"> </font>\n'
tmp+='\t\t</para>\n' tmp += '\t\t</para>\n'
tmp+='\t\t<para style="P2" spaceAfter="5"><b>Tipo da Sessão: </b> ' + nom_sessao + '</para>\n' tmp += '\t\t<para style="P2" spaceAfter="5"><b>Tipo da Sessão: </b> ' + \
tmp+='\t\t<para style="P2" spaceAfter="5"><b>Abertura: </b> ' + dat_inicio_sessao + ' <b>- </b> ' + hr_inicio_sessao + '</para>\n' nom_sessao + '</para>\n'
tmp+='\t\t<para style="P2" spaceAfter="5"><b>Encerramento: </b> ' + dat_fim_sessao + ' <b>- </b> ' + hr_fim_sessao + '</para>\n' tmp += '\t\t<para style="P2" spaceAfter="5"><b>Abertura: </b> ' + \
dat_inicio_sessao + ' <b>- </b> ' + hr_inicio_sessao + '</para>\n'
tmp += '\t\t<para style="P2" spaceAfter="5"><b>Encerramento: </b> ' + \
dat_fim_sessao + ' <b>- </b> ' + hr_fim_sessao + '</para>\n'
return tmp return tmp
def mesa(lst_mesa): def mesa(lst_mesa):
""" """
""" """
tmp='' tmp = ''
tmp+='\t\t<para style="P1">Mesa Diretora</para>\n' tmp += '\t\t<para style="P1">Mesa Diretora</para>\n'
tmp+='\t\t<para style="P2">\n' tmp += '\t\t<para style="P2">\n'
tmp+='\t\t\t<font color="white"> </font>\n' tmp += '\t\t\t<font color="white"> </font>\n'
tmp+='\t\t</para>\n' tmp += '\t\t</para>\n'
for mesa in lst_mesa: for mesa in lst_mesa:
tmp+='\t\t<para style="P2" spaceAfter="5"><b>'+ str(mesa['des_cargo']) +':</b> ' + str(mesa['nom_parlamentar']) + '/' + str(mesa['sgl_partido']) +'</para>\n' tmp += '\t\t<para style="P2" spaceAfter="5"><b>' + \
str(mesa['des_cargo']) + ':</b> ' + str(mesa['nom_parlamentar']
) + '/' + str(mesa['sgl_partido']) + '</para>\n'
return tmp return tmp
def presenca(lst_presenca_sessao): def presenca(lst_presenca_sessao):
""" """
""" """
tmp = '' tmp = ''
tmp+='\t\t<para style="P1">Lista de Presença da Sessão</para>\n' tmp += '\t\t<para style="P1">Lista de Presença da Sessão</para>\n'
tmp+='\t\t<para style="P2">\n' tmp += '\t\t<para style="P2">\n'
tmp+='\t\t\t<font color="white"> </font>\n' tmp += '\t\t\t<font color="white"> </font>\n'
tmp+='\t\t</para>\n' tmp += '\t\t</para>\n'
for presenca in lst_presenca_sessao: for presenca in lst_presenca_sessao:
tmp+='\t\t<para style="P2" spaceAfter="5">'+ str(presenca['nom_parlamentar']) + '/' + str(presenca['sgl_partido']) +'</para>\n' tmp += '\t\t<para style="P2" spaceAfter="5">' + \
str(presenca['nom_parlamentar']) + '/' + \
str(presenca['sgl_partido']) + '</para>\n'
return tmp return tmp
def expedientes(lst_expedientes): def expedientes(lst_expedientes):
""" """
""" """
tmp = '' tmp = ''
tmp+='\t\t<para style="P1">Expedientes</para>\n' tmp += '\t\t<para style="P1">Expedientes</para>\n'
tmp+='\t\t<para style="P2">\n' tmp += '\t\t<para style="P2">\n'
tmp+='\t\t\t<font color="white"> </font>\n' tmp += '\t\t\t<font color="white"> </font>\n'
tmp+='\t\t</para>\n' tmp += '\t\t</para>\n'
for expediente in lst_expedientes: for expediente in lst_expedientes:
tmp+='\t\t<para style="P2"><b>' + expediente['nom_expediente'] +': </b></para>\n' + '<para style="P2">' + str(expediente['txt_expediente']) +'</para>\n' tmp += '\t\t<para style="P2"><b>' + \
tmp+='\t\t<para style="P2">\n' expediente['nom_expediente'] + ': </b></para>\n' + \
tmp+='\t\t\t<font color="white"> </font>\n' '<para style="P2">' + \
tmp+='\t\t</para>\n' expediente['txt_expediente'] + '</para>\n'
tmp += '\t\t<para style="P2">\n'
tmp += '\t\t\t<font color="white"> </font>\n'
tmp += '\t\t</para>\n'
return tmp return tmp
def expediente_materia(lst_expediente_materia): def expediente_materia(lst_expediente_materia):
""" """
""" """
tmp = '' tmp = ''
tmp+='\t\t<para style="P1">Matérias do Expediente</para>\n\n' tmp += '\t\t<para style="P1">Matérias do Expediente</para>\n\n'
tmp+='\t\t<para style="P2">\n' tmp += '\t\t<para style="P2">\n'
tmp+='\t\t\t<font color="white"> </font>\n' tmp += '\t\t\t<font color="white"> </font>\n'
tmp+='\t\t</para>\n' tmp += '\t\t</para>\n'
tmp+='<blockTable style="repeater" repeatRows="1">\n' tmp += '<blockTable style="repeater" repeatRows="1">\n'
tmp+='<tr><td >Matéria</td><td>Ementa</td><td>Resultado da Votação</td></tr>\n' tmp += '<tr><td >Matéria</td><td>Ementa</td><td>Resultado da Votação</td></tr>\n'
for expediente_materia in lst_expediente_materia: for expediente_materia in lst_expediente_materia:
tmp+= '<tr><td><para style="P3"><b>' + str(expediente_materia['num_ordem']) + '</b> - ' + expediente_materia['id_materia'] + '</para>\n' + '<para style="P3"><b>Turno: </b>' + expediente_materia['des_turno'] + '</para>\n' + '<para style="P3"><b>Autor: </b>' + expediente_materia['nom_autor'] +'</para></td>\n' tmp += '<tr><td><para style="P3"><b>' + str(expediente_materia['num_ordem']) + '</b> - ' + expediente_materia['id_materia'] + '</para>\n' + '<para style="P3"><b>Turno: </b>' + expediente_materia[
txt_ementa = expediente_materia['txt_ementa'].replace('&','&amp;') 'des_turno'] + '</para>\n' + '<para style="P3"><b>Autor: </b>' + expediente_materia['nom_autor'] + '</para></td>\n'
tmp+='<td><para style="P4">' + txt_ementa + '</para></td>\n' txt_ementa = expediente_materia['txt_ementa'].replace('&', '&amp;')
tmp+='<td><para style="P3"><b>' + expediente_materia['nom_resultado'] + '</b></para>\n' + '<para style="P3">' + expediente_materia['votacao_observacao'] + '</para></td></tr>\n' tmp += '<td><para style="P4">' + txt_ementa + '</para></td>\n'
tmp += '<td><para style="P3"><b>' + \
expediente_materia['nom_resultado'] + '</b></para>\n' + '<para style="P3">' + \
expediente_materia['votacao_observacao'] + '</para></td></tr>\n'
tmp+='\t\t</blockTable>\n' tmp += '\t\t</blockTable>\n'
return tmp return tmp
def oradores_expediente(lst_oradores_expediente): def oradores_expediente(lst_oradores_expediente):
""" """
""" """
tmp = '' tmp = ''
tmp+='\t\t<para style="P1">Oradores do Expediente</para>\n' tmp += '\t\t<para style="P1">Oradores do Expediente</para>\n'
tmp+='\t\t<para style="P2">\n' tmp += '\t\t<para style="P2">\n'
tmp+='\t\t\t<font color="white"> </font>\n' tmp += '\t\t\t<font color="white"> </font>\n'
tmp+='\t\t</para>\n' tmp += '\t\t</para>\n'
for orador_expediente in lst_oradores_expediente: for orador_expediente in lst_oradores_expediente:
tmp+='\t\t<para style="P2" spaceAfter="5"><b>'+ str(orador_expediente['num_ordem']) +'</b> - ' + orador_expediente['nom_parlamentar'] + '/' + str(orador_expediente['sgl_partido']) +'</para>\n' tmp += '\t\t<para style="P2" spaceAfter="5"><b>' + str(orador_expediente['num_ordem']) + '</b> - ' + orador_expediente[
'nom_parlamentar'] + '/' + str(orador_expediente['sgl_partido']) + '</para>\n'
return tmp return tmp
def presenca_ordem_dia(lst_presenca_ordem_dia): def presenca_ordem_dia(lst_presenca_ordem_dia):
""" """
""" """
tmp = '' tmp = ''
tmp+='\t\t<para style="P1">Lista de Presença da Ordem do Dia</para>\n' tmp += '\t\t<para style="P1">Lista de Presença da Ordem do Dia</para>\n'
tmp+='\t\t<para style="P2">\n' tmp += '\t\t<para style="P2">\n'
tmp+='\t\t\t<font color="white"> </font>\n' tmp += '\t\t\t<font color="white"> </font>\n'
tmp+='\t\t</para>\n' tmp += '\t\t</para>\n'
for presenca_ordem_dia in lst_presenca_ordem_dia: for presenca_ordem_dia in lst_presenca_ordem_dia:
tmp+='\t\t<para style="P2" spaceAfter="5">'+ str(presenca_ordem_dia['nom_parlamentar']) + '/' + str(presenca_ordem_dia['sgl_partido']) +'</para>\n' tmp += '\t\t<para style="P2" spaceAfter="5">' + \
str(presenca_ordem_dia['nom_parlamentar']) + '/' + \
str(presenca_ordem_dia['sgl_partido']) + '</para>\n'
return tmp return tmp
def votacao(lst_votacao): def votacao(lst_votacao):
""" """
""" """
tmp = '' tmp = ''
tmp+='<para style="P1">Matérias da Ordem do Dia</para>\n\n' tmp += '<para style="P1">Matérias da Ordem do Dia</para>\n\n'
tmp+='\t\t<para style="P2">\n' tmp += '\t\t<para style="P2">\n'
tmp+='\t\t\t<font color="white"> </font>\n' tmp += '\t\t\t<font color="white"> </font>\n'
tmp+='\t\t</para>\n' tmp += '\t\t</para>\n'
tmp+='<blockTable style="repeater" repeatRows="1">\n' tmp += '<blockTable style="repeater" repeatRows="1">\n'
tmp+='<tr><td >Matéria</td><td>Ementa</td><td>Resultado da Votação</td></tr>\n' tmp += '<tr><td >Matéria</td><td>Ementa</td><td>Resultado da Votação</td></tr>\n'
for votacao in lst_votacao: for votacao in lst_votacao:
tmp+= '<tr><td><para style="P3"><b>'+ str(votacao['num_ordem']) + '</b> - ' + votacao['id_materia'] + '</para>\n' + '<para style="P3"><b>Turno:</b> ' + votacao['des_turno'] + '</para>\n' + '<para style="P3"><b>Autor: </b>' + votacao['nom_autor'] +'</para></td>\n' tmp += '<tr><td><para style="P3"><b>' + str(votacao['num_ordem']) + '</b> - ' + votacao['id_materia'] + '</para>\n' + '<para style="P3"><b>Turno:</b> ' + votacao[
txt_ementa = votacao['txt_ementa'].replace('&','&amp;') 'des_turno'] + '</para>\n' + '<para style="P3"><b>Autor: </b>' + votacao['nom_autor'] + '</para></td>\n'
tmp+='<td><para style="P4">' + txt_ementa + '</para></td>\n' txt_ementa = votacao['txt_ementa'].replace('&', '&amp;')
tmp+='<td><para style="P3"><b>' + votacao['nom_resultado'] + '</b></para>\n' + '<para style="P3">' + votacao['votacao_observacao'] + '</para></td></tr>\n' tmp += '<td><para style="P4">' + txt_ementa + '</para></td>\n'
tmp += '<td><para style="P3"><b>' + \
votacao['nom_resultado'] + '</b></para>\n' + '<para style="P3">' + \
votacao['votacao_observacao'] + '</para></td></tr>\n'
tmp+='\t\t</blockTable>\n' tmp += '\t\t</blockTable>\n'
return tmp return tmp
def oradores(lst_oradores): def oradores(lst_oradores):
""" """
""" """
tmp = '' tmp = ''
tmp+='\t\t<para style="P1">Oradores das Explicações Pessoais</para>\n' tmp += '\t\t<para style="P1">Oradores das Explicações Pessoais</para>\n'
tmp+='\t\t<para style="P2">\n' tmp += '\t\t<para style="P2">\n'
tmp+='\t\t\t<font color="white"> </font>\n' tmp += '\t\t\t<font color="white"> </font>\n'
tmp+='\t\t</para>\n' tmp += '\t\t</para>\n'
for orador in lst_oradores: for orador in lst_oradores:
tmp+='\t\t<para style="P2" spaceAfter="5"><b>'+ str(orador['num_ordem']) +'</b> - ' + orador['nom_parlamentar'] + '/' + str(orador['sgl_partido']) +'</para>\n' tmp += '\t\t<para style="P2" spaceAfter="5"><b>' + \
str(orador['num_ordem']) + '</b> - ' + orador['nom_parlamentar'] + \
'/' + str(orador['sgl_partido']) + '</para>\n'
return tmp return tmp
def principal(cabecalho, rodape, sessao, imagem, inf_basicas_dic):
def principal(cabecalho_dic, rodape_dic, imagem, sessao, inf_basicas_dic, lst_mesa, lst_presenca_sessao, lst_expedientes, lst_expediente_materia, lst_oradores_expediente, lst_presenca_ordem_dia, lst_votacao, lst_oradores):
""" """
""" """
arquivoPdf = str(int(time.time() * 100)) + ".pdf"
arquivoPdf=str(int(time.time()*100))+".pdf" tmp = ''
tmp += '<?xml version="1.0" encoding="utf-8" standalone="no" ?>\n'
tmp='' tmp += '<!DOCTYPE document SYSTEM "rml_1_0.dtd">\n'
tmp+='<?xml version="1.0" encoding="utf-8" standalone="no" ?>\n' tmp += '<document filename="relatorio.pdf">\n'
tmp+='<!DOCTYPE document SYSTEM "rml_1_0.dtd">\n' tmp += '\t<template pageSize="(21cm, 29.7cm)" title="Sessao Plenaria" author="Interlegis" allowSplitting="20">\n'
tmp+='<document filename="relatorio.pdf">\n' tmp += '\t\t<pageTemplate id="first">\n'
tmp+='\t<template pageSize="(21cm, 29.7cm)" title="Sessao Plenaria" author="Interlegis" allowSplitting="20">\n' tmp += '\t\t\t<pageGraphics>\n'
tmp+='\t\t<pageTemplate id="first">\n' tmp += cabecalho(inf_basicas_dic, imagem)
tmp+='\t\t\t<pageGraphics>\n' tmp += rodape(rodape_dic)
tmp+=cabecalho(inf_basicas_dic,imagem) tmp += '\t\t\t</pageGraphics>\n'
tmp+=rodape(rodape_dic) tmp += '\t\t\t<frame id="first" x1="2cm" y1="4cm" width="17cm" height="20.5cm"/>\n'
tmp+='\t\t\t</pageGraphics>\n' tmp += '\t\t</pageTemplate>\n'
tmp+='\t\t\t<frame id="first" x1="2cm" y1="4cm" width="17cm" height="20.5cm"/>\n' tmp += '\t</template>\n'
tmp+='\t\t</pageTemplate>\n' tmp += paraStyle()
tmp+='\t</template>\n' tmp += '\t<story>\n'
tmp+=paraStyle() tmp += inf_basicas(inf_basicas_dic)
tmp+='\t<story>\n' tmp += mesa(lst_mesa)
tmp+=inf_basicas(inf_basicas_dic) tmp += presenca(lst_presenca_sessao)
tmp+=mesa(lst_mesa) tmp += expedientes(lst_expedientes)
tmp+=presenca(lst_presenca_sessao) tmp += expediente_materia(lst_expediente_materia)
tmp+=expedientes(lst_expedientes) tmp += oradores_expediente(lst_oradores_expediente)
tmp+=expediente_materia(lst_expediente_materia) tmp += presenca_ordem_dia(lst_presenca_ordem_dia)
tmp+=oradores_expediente(lst_oradores_expediente) tmp += votacao(lst_votacao)
tmp+=presenca_ordem_dia(lst_presenca_ordem_dia) tmp += oradores(lst_oradores)
tmp+=votacao(lst_votacao) tmp += '\t</story>\n'
tmp+=oradores(lst_oradores) tmp += '</document>\n'
tmp+='\t</story>\n' tmp_pdf = parseString(tmp)
tmp+='</document>\n'
tmp_pdf=parseString(tmp)
return tmp_pdf return tmp_pdf
# if hasattr(context.temp_folder,arquivoPdf): # if hasattr(context.temp_folder,arquivoPdf):
# context.temp_folder.manage_delObjects(ids=arquivoPdf) # context.temp_folder.manage_delObjects(ids=arquivoPdf)

2
relatorios/urls.py

@ -5,7 +5,7 @@ from .views import (relatorio_documento_administrativo, relatorio_materia,
relatorio_protocolo, relatorio_espelho, relatorio_protocolo, relatorio_espelho,
relatorio_etiqueta_protocolo, relatorio_etiqueta_protocolo,
relatorio_pauta_sessao, relatorio_pauta_sessao,
relatorio_sessao_plenaria) relatorio_sessao_plenaria,)
urlpatterns = [ urlpatterns = [
url(r'^relatorios/materia$', relatorio_materia, name='relatorio_materia'), url(r'^relatorios/materia$', relatorio_materia, name='relatorio_materia'),

520
relatorios/views.py

@ -8,11 +8,16 @@ from comissoes.models import Comissao
from materia.models import (Autor, Autoria, MateriaLegislativa, Numeracao, from materia.models import (Autor, Autoria, MateriaLegislativa, Numeracao,
Tramitacao, UnidadeTramitacao) Tramitacao, UnidadeTramitacao)
from parlamentares.models import Parlamentar from parlamentares.models import (Parlamentar, ComposicaoMesa,
CargoMesa, Filiacao)
from protocoloadm.models import (DocumentoAdministrativo, Protocolo, from protocoloadm.models import (DocumentoAdministrativo, Protocolo,
TramitacaoAdministrativo) TramitacaoAdministrativo)
from sessao.models import (ExpedienteMateria, OrdemDia, SessaoPlenaria) from sessao.models import (OrdemDia, SessaoPlenaria,
SessaoPlenariaPresenca,
TipoExpediente, ExpedienteSessao, ExpedienteMateria,
RegistroVotacao,
OradorExpediente, PresencaOrdemDia, Orador)
from .templates import (pdf_capa_processo_gerar, from .templates import (pdf_capa_processo_gerar,
pdf_documento_administrativo_gerar, pdf_documento_administrativo_gerar,
@ -20,8 +25,10 @@ from .templates import (pdf_capa_processo_gerar,
pdf_materia_gerar, pdf_materia_gerar,
pdf_protocolo_gerar, pdf_protocolo_gerar,
pdf_etiqueta_protocolo_gerar, pdf_etiqueta_protocolo_gerar,
pdf_pauta_sessao_gerar) pdf_pauta_sessao_gerar,
pdf_sessao_plenaria_gerar)
from bs4 import BeautifulSoup
def get_cabecalho(casa): def get_cabecalho(casa):
@ -539,211 +546,271 @@ def get_espelho(mats):
materias.append(dic) materias.append(dic)
return materias return materias
def get_sessao_plenaria(sessao):
pass
# if context.REQUEST['data']!='': def get_sessao_plenaria(sessao, casa):
# dat_inicio_sessao = context.REQUEST['data']
# pauta = [] # lista contendo a pauta da ordem do dia a ser impressa inf_basicas_dic = {}
# data = context.pysc.data_converter_pysc(dat_inicio_sessao) # converte data para formato yyyy/mm/dd inf_basicas_dic["num_sessao_plen"] = str(sessao.numero)
# codigo = context.REQUEST['cod_sessao_plen'] inf_basicas_dic["nom_sessao"] = sessao.tipo.nome
inf_basicas_dic["num_legislatura"] = str(sessao.legislatura)
# # seleciona as matérias que compõem a pauta na data escolhida inf_basicas_dic["num_sessao_leg"] = sessao.sessao_legislativa.numero
# for sessao in context.zsql.sessao_plenaria_obter_zsql(dat_inicio_sessao=data, cod_sessao_plen=codigo, ind_excluido=0): inf_basicas_dic["dat_inicio_sessao"] = sessao.data_inicio.strftime(
# inf_basicas_dic = {} # dicionário que armazenará as informacoes basicas da sessao plenaria "%d/%m/%Y")
# # seleciona o tipo da sessao plenaria inf_basicas_dic["hr_inicio_sessao"] = sessao.hora_inicio
# tipo_sessao = context.zsql.tipo_sessao_plenaria_obter_zsql(tip_sessao=sessao.tip_sessao,ind_excluido=0)[0] inf_basicas_dic["dat_fim_sessao"] = sessao.data_fim.strftime("%d/%m/%Y")
# inf_basicas_dic["num_sessao_plen"] = sessao.num_sessao_plen inf_basicas_dic["hr_fim_sessao"] = sessao.hora_fim
# inf_basicas_dic["nom_sessao"] = tipo_sessao.nom_sessao inf_basicas_dic["nom_camara"] = casa.nome
# inf_basicas_dic["num_legislatura"] = sessao.num_legislatura
# inf_basicas_dic["num_sessao_leg"] = sessao.num_sessao_leg # Lista da composicao da mesa diretora
# inf_basicas_dic["dat_inicio_sessao"] = sessao.dat_inicio_sessao lst_mesa = []
# inf_basicas_dic["hr_inicio_sessao"] = sessao.hr_inicio_sessao for composicao in ComposicaoMesa.objects.filter(
# inf_basicas_dic["dat_fim_sessao"] = sessao.dat_fim_sessao sessao_legislativa=sessao.sessao_legislativa):
# inf_basicas_dic["hr_fim_sessao"] = sessao.hr_fim_sessao for parlamentar in Parlamentar.objects.filter(
id=composicao.parlamentar.id):
# # Lista da composicao da mesa diretora for cargo in CargoMesa.objects.filter(id=composicao.cargo.id):
# lst_mesa = [] dic_mesa = {}
# for composicao in context.zsql.composicao_mesa_sessao_obter_zsql(cod_sessao_plen=sessao.cod_sessao_plen,ind_excluido=0): dic_mesa['nom_parlamentar'] = parlamentar.nome_parlamentar
# for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=composicao.cod_parlamentar,ind_excluido=0): dic_mesa['sgl_partido'] = Filiacao.objects.filter(
# for cargo in context.zsql.cargo_mesa_obter_zsql(cod_cargo=composicao.cod_cargo, ind_excluido=0): parlamentar=parlamentar).first().partido.sigla
# dic_mesa = {} dic_mesa['des_cargo'] = cargo.descricao
# dic_mesa['nom_parlamentar'] = parlamentar.nom_parlamentar lst_mesa.append(dic_mesa)
# dic_mesa['sgl_partido'] = parlamentar.sgl_partido
# dic_mesa['des_cargo'] = cargo.des_cargo # Lista de presença na sessão
# lst_mesa.append(dic_mesa) lst_presenca_sessao = []
for presenca in SessaoPlenariaPresenca.objects.filter(
# # Lista de presença na sessão sessao_plenaria=sessao):
# lst_presenca_sessao = [] for parlamentar in Parlamentar.objects.filter(
# for presenca in context.zsql.presenca_sessao_obter_zsql(cod_sessao_plen=sessao.cod_sessao_plen, ind_excluido=0): id=presenca.parlamentar.id):
# for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=presenca.cod_parlamentar,ind_excluido=0): dic_presenca = {}
# dic_presenca = {} dic_presenca["nom_parlamentar"] = parlamentar.nome_parlamentar
# dic_presenca["nom_parlamentar"] = parlamentar.nom_parlamentar dic_presenca['sgl_partido'] = Filiacao.objects.filter(
# dic_presenca['sgl_partido'] = parlamentar.sgl_partido parlamentar=parlamentar).first().partido.sigla
# lst_presenca_sessao.append(dic_presenca) lst_presenca_sessao.append(dic_presenca)
# # Exibe os Expedientes # Exibe os Expedientes
# lst_expedientes = [] lst_expedientes = []
# dic_expedientes = None for tip_expediente in TipoExpediente.objects.all():
# for tip_expediente in context.zsql.tipo_expediente_obter_zsql(): for expediente in ExpedienteSessao.objects.filter(
# for expediente in context.zsql.expediente_obter_zsql(cod_sessao_plen=sessao.cod_sessao_plen,cod_expediente=tip_expediente.cod_expediente, ind_excluido=0): sessao_plenaria=sessao, tipo=tip_expediente):
# dic_expedientes = {} dic_expedientes = {}
# dic_expedientes["nom_expediente"] = tip_expediente.nom_expediente dic_expedientes["nom_expediente"] = str(tip_expediente)
# dic_expedientes["txt_expediente"] = expediente.txt_expediente dic_expedientes["txt_expediente"] = (
BeautifulSoup(expediente.conteudo).text)
# if dic_expedientes: if dic_expedientes:
# lst_expedientes.append(dic_expedientes) lst_expedientes.append(dic_expedientes)
# # Lista das matérias do Expediente, incluindo o resultado das votacoes # Lista das matérias do Expediente, incluindo o resultado das votacoes
# lst_expediente_materia=[] lst_expediente_materia = []
# for expediente_materia in context.zsql.votacao_expediente_materia_obter_zsql(dat_ordem = data, cod_sessao_plen=sessao.cod_sessao_plen, ind_excluido=0): for expediente_materia in ExpedienteMateria.objects.filter(
sessao_plenaria=sessao):
# # seleciona os detalhes de uma matéria # seleciona os detalhes de uma matéria
# materia = context.zsql.materia_obter_zsql(cod_materia=expediente_materia.cod_materia)[0] materia = MateriaLegislativa.objects.filter(
id=expediente_materia.materia.id).first()
# dic_expediente_materia = {}
# dic_expediente_materia["num_ordem"] = expediente_materia.num_ordem dic_expediente_materia = {}
# dic_expediente_materia["id_materia"] = materia.sgl_tipo_materia+" "+materia.des_tipo_materia+" "+str(materia.num_ident_basica)+"/"+str(materia.ano_ident_basica) dic_expediente_materia["num_ordem"] = expediente_materia.numero_ordem
# dic_expediente_materia["des_numeracao"]="" dic_expediente_materia["id_materia"] = (materia.tipo.sigla + ' ' +
materia.tipo.descricao + ' ' +
# numeracao = context.zsql.numeracao_obter_zsql(cod_materia=expediente_materia.cod_materia) str(materia.numero) + '/' +
# if len(numeracao): str(materia.ano))
# numeracao = numeracao[0] dic_expediente_materia["des_numeracao"] = ' '
# dic_expediente_materia["des_numeracao"] = str(numeracao.num_materia)+"/"+str(numeracao.ano_materia)
numeracao = Numeracao.objects.filter(
# tram = context.zsql.tramitacao_turno_obter_zsql(cod_materia=materia.cod_materia, dat_inicio_sessao=data) materia=expediente_materia.materia).first()
# dic_expediente_materia["des_turno"]="" if numeracao is not None:
# if len(tram): dic_expediente_materia["des_numeracao"] = (
# tram_turno = tram[0] str(numeracao.numero) + '/' + str(numeracao.ano))
# if tram_turno.sgl_turno != "":
# for turno in [("P","Primeiro"), ("S","Segundo"), ("U","Único"), ("L","Suplementar"), ("A","Votação Única em Regime de Urgência"), ("B","1ª Votação"), ("C","2ª e 3ª Votações"), ("F", "Final")]: dic_expediente_materia["des_turno"] = ' '
# if tram_turno.sgl_turno == turno[0]: tram = Tramitacao.objects.filter(
# dic_expediente_materia["des_turno"] = turno[1] materia=materia).first()
if tram is not None:
# dic_expediente_materia["txt_ementa"] = materia.txt_ementa if tram.turno != '':
# dic_expediente_materia["ordem_observacao"] = expediente_materia.ordem_observacao for turno in [("P", "Primeiro"),
# dic_expediente_materia["nom_autor"] = "" ("S", "Segundo"),
# autoria = context.zsql.autoria_obter_zsql(cod_materia=expediente_materia.cod_materia, ind_primeiro_autor=1) ("U", "Único"),
# if len(autoria) > 0: # se existe autor ("L", "Suplementar"),
# autoria = autoria[0] ("A", "Votação Única em Regime de Urgência"),
# autor = context.zsql.autor_obter_zsql(cod_autor=autoria.cod_autor) ("B", "1ª Votação"),
# if len(autor) > 0: ("C", "2ª e 3ª Votações"),
# autor = autor[0] ("F", "Final")]:
# try: if tram.turno == turno[0]:
# if autor.des_tipo_autor == "Parlamentar": dic_expediente_materia["des_turno"] = turno[1]
# parlamentar = context.zsql.parlamentar_obter_zsql(cod_parlamentar=autor.cod_parlamentar)[0]
# dic_expediente_materia["nom_autor"] = parlamentar.nom_parlamentar dic_expediente_materia["txt_ementa"] = str(materia.ementa)
# elif autor.des_tipo_autor == "Comissao": dic_expediente_materia["ordem_observacao"] = ' ' # TODO
# comissao = context.zsql.comissao_obter_zsql(cod_comissao=autor.cod_comissao)[0] dic_expediente_materia["nom_autor"] = ' '
# dic_expediente_materia["nom_autor"] = comissao.nom_comissao
# elif autor.nom_autor != "": autoria = Autoria.objects.filter(
# dic_expediente_materia["nom_autor"] = autor.nom_autor materia=materia, primeiro_autor=True).first()
# else:
# dic_expediente_materia["nom_autor"] = autor.des_tipo_autor if autoria is not None:
# except: autor = Autor.objects.filter(id=autoria.autor.id)
# dic_expediente_materia["nom_autor"] = "NC-em"
if autor is not None:
# dic_expediente_materia["votacao_observacao"]="" autor = autor.first()
# if expediente_materia.tip_resultado_votacao:
# resultado = context.zsql.tipo_resultado_votacao_obter_zsql(tip_resultado_votacao=expediente_materia.tip_resultado_votacao, ind_excluido=0) if autor.tipo == 'Parlamentar':
# for i in resultado: parlamentar = Parlamentar.objects.filter(
# dic_expediente_materia["nom_resultado"] = i.nom_resultado id=autor.parlamentar.id)
# if expediente_materia.votacao_observacao: dic_expediente_materia["nom_autor"] = str(
# dic_expediente_materia["votacao_observacao"] = expediente_materia.votacao_observacao parlamentar.nome_completo)
# else: elif autor.tipo == 'Comissao':
# dic_expediente_materia["nom_resultado"] = "Matéria não votada" comissao = Comissao.objects.filter(id=autor.comissao.id)
# dic_expediente_materia["votacao_observacao"] = "Vazio" dic_expediente_materia["nom_autor"] = str(comissao)
# lst_expediente_materia.append(dic_expediente_materia) else:
dic_expediente_materia["nom_autor"] = str(autor.nome)
# # Lista dos oradores do Expediente elif autoria is None:
# lst_oradores_expediente = [] dic_expediente_materia["nom_autor"] = 'Desconhecido'
# for orador_expediente in context.zsql.oradores_expediente_obter_zsql(cod_sessao_plen=sessao.cod_sessao_plen, ind_excluido=0):
# for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=orador_expediente.cod_parlamentar,ind_excluido=0): dic_expediente_materia["votacao_observacao"] = ' '
# dic_oradores_expediente = {} if not expediente_materia.resultado:
# dic_oradores_expediente["num_ordem"] = orador_expediente.num_ordem resultado = RegistroVotacao.objects.filter(
# dic_oradores_expediente["nom_parlamentar"] = parlamentar.nom_parlamentar tipo_resultado_votacao=expediente_materia.tipo_votacao)
# dic_oradores_expediente['sgl_partido'] = parlamentar.sgl_partido
# lst_oradores_expediente.append(dic_oradores_expediente) for i in resultado:
dic_expediente_materia["nom_resultado"] = (
# # Lista presença na ordem do dia i.tipo_resultado_votacao.nome)
# lst_presenca_ordem_dia = [] dic_expediente_materia["votacao_observacao"] = (
# for presenca_ordem_dia in context.zsql.presenca_ordem_dia_obter_zsql(cod_sessao_plen=sessao.cod_sessao_plen,ind_excluido=0): expediente_materia.observacao)
# for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=presenca_ordem_dia.cod_parlamentar,ind_excluido=0): else:
# dic_presenca_ordem_dia = {} dic_expediente_materia["nom_resultado"] = "Matéria não votada"
# dic_presenca_ordem_dia['nom_parlamentar'] = parlamentar.nom_parlamentar dic_expediente_materia["votacao_observacao"] = "Vazio"
# dic_presenca_ordem_dia['sgl_partido'] = parlamentar.sgl_partido lst_expediente_materia.append(dic_expediente_materia)
# lst_presenca_ordem_dia.append(dic_presenca_ordem_dia)
# Lista dos oradores do Expediente
# # Lista das matérias da Ordem do Dia, incluindo o resultado das votacoes lst_oradores_expediente = []
# lst_votacao=[] for orador_expediente in OradorExpediente.objects.filter(
# for votacao in context.zsql.votacao_ordem_dia_obter_zsql(dat_ordem = data, cod_sessao_plen=sessao.cod_sessao_plen, ind_excluido=0): sessao_plenaria=sessao):
for parlamentar in Parlamentar.objects.filter(
# # seleciona os detalhes de uma matéria id=orador_expediente.parlamentar.id):
# materia = context.zsql.materia_obter_zsql(cod_materia=votacao.cod_materia)[0] dic_oradores_expediente = {}
dic_oradores_expediente["num_ordem"] = (
# dic_votacao = {} orador_expediente.numero_ordem)
# dic_votacao["num_ordem"] = votacao.num_ordem dic_oradores_expediente["nom_parlamentar"] = (
# dic_votacao["id_materia"] = materia.sgl_tipo_materia+" "+materia.des_tipo_materia+" "+str(materia.num_ident_basica)+"/"+str(materia.ano_ident_basica) parlamentar.nome_parlamentar)
# dic_votacao["des_numeracao"]="" dic_oradores_expediente['sgl_partido'] = (
# numeracao = context.zsql.numeracao_obter_zsql(cod_materia=votacao.cod_materia) Filiacao.objects.filter(
# if len(numeracao): parlamentar=parlamentar).first().partido.sigla)
# numeracao = numeracao[0] lst_oradores_expediente.append(dic_oradores_expediente)
# dic_votacao["des_numeracao"] = str(numeracao.num_materia)+"/"+str(numeracao.ano_materia)
# dic_votacao["des_turno"]="" # Lista presença na ordem do dia
# tramitacao = context.zsql.tramitacao_obter_zsql(cod_materia=materia.cod_materia, ind_ult_tramitacao=1) lst_presenca_ordem_dia = []
# if len(tramitacao): for presenca_ordem_dia in PresencaOrdemDia.objects.filter(
# tramitacao = tramitacao[0] sessao_plenaria=sessao):
# tram = context.zsql.tramitacao_turno_obter_zsql(cod_materia=materia.cod_materia, dat_inicio_sessao=data) for parlamentar in Parlamentar.objects.filter(
# if len(tram): id=presenca_ordem_dia.parlamentar.id):
# tram_turno = tram[0] dic_presenca_ordem_dia = {}
# if tram_turno.sgl_turno != "": dic_presenca_ordem_dia['nom_parlamentar'] = (
# for turno in [("P","Primeiro"), ("S","Segundo"), ("U","Único"), ("L","Suplementar"), ("F","Final"), ("A","Votação Única em Regime de Urgência"), ("B","1ª Votação"), ("C","2ª e 3ª Votações")]: parlamentar.nome_parlamentar)
# if tram_turno.sgl_turno == turno[0]: dic_presenca_ordem_dia['sgl_partido'] = (
# dic_votacao["des_turno"] = turno[1] Filiacao.objects.filter(
# dic_votacao["txt_ementa"] = materia.txt_ementa parlamentar=parlamentar).first().partido.sigla)
# dic_votacao["ordem_observacao"] = votacao.ordem_observacao lst_oradores_expediente.append(dic_oradores_expediente)
# dic_votacao["nom_autor"] = "" lst_presenca_ordem_dia.append(dic_presenca_ordem_dia)
# autoria = context.zsql.autoria_obter_zsql(cod_materia=votacao.cod_materia, ind_primeiro_autor=1)
# if len(autoria) > 0: # se existe autor # Lista das matérias da Ordem do Dia, incluindo o resultado das votacoes
# autoria = autoria[0] lst_votacao = []
# autor = context.zsql.autor_obter_zsql(cod_autor=autoria.cod_autor) for votacao in OrdemDia.objects.filter(
# if len(autor) > 0: sessao_plenaria=sessao):
# autor = autor[0] # seleciona os detalhes de uma matéria
# try: materia = MateriaLegislativa.objects.filter(
# if autor.des_tipo_autor == "Parlamentar": id=votacao.materia.id).first()
# parlamentar = context.zsql.parlamentar_obter_zsql(cod_parlamentar=autor.cod_parlamentar)[0]
# dic_votacao["nom_autor"] = parlamentar.nom_parlamentar dic_votacao = {}
# elif autor.des_tipo_autor == "Comissao": dic_votacao["num_ordem"] = votacao.numero_ordem
# comissao = context.zsql.comissao_obter_zsql(cod_comissao=autor.cod_comissao)[0] dic_votacao["id_materia"] = (
# dic_votacao["nom_autor"] = comissao.nom_comissao materia.tipo.sigla + ' ' +
# elif autor.nom_autor != "": materia.tipo.descricao + ' ' +
# dic_votacao["nom_autor"] = autor.nom_autor str(materia.numero) + '/' +
# else: str(materia.ano))
# dic_votacao["nom_autor"] = autor.des_tipo_autor dic_votacao["des_numeracao"] = ' '
# except:
# dic_votacao["nom_autor"] = "NC-od" numeracao = Numeracao.objects.filter(
materia=votacao.materia).first()
# dic_votacao["votacao_observacao"]="" if numeracao is not None:
# if votacao.tip_resultado_votacao: dic_votacao["des_numeracao"] = (
# resultado = context.zsql.tipo_resultado_votacao_obter_zsql(tip_resultado_votacao=votacao.tip_resultado_votacao, ind_excluido=0) str(numeracao.numero) +
# for i in resultado: '/' +
# dic_votacao["nom_resultado"] = i.nom_resultado str(numeracao.ano))
# if votacao.votacao_observacao: dic_votacao["des_turno"] = ' '
# dic_votacao["votacao_observacao"] = votacao.votacao_observacao
# else: tramitacao = Tramitacao.objects.filter(
# dic_votacao["nom_resultado"] = "Matéria não votada" materia=materia).first()
# dic_votacao["votacao_observacao"] = "Vazio" if tramitacao is not None:
# lst_votacao.append(dic_votacao) if not tramitacao.turno:
for turno in [("P", "Primeiro"),
# # Lista dos oradores nas Explicações Pessoais ("S", "Segundo"),
# lst_oradores = [] ("U", "Único"),
# for orador in context.zsql.oradores_obter_zsql(cod_sessao_plen=sessao.cod_sessao_plen, ind_excluido=0): ("L", "Suplementar"),
# for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=orador.cod_parlamentar,ind_excluido=0): ("F", "Final"),
# dic_oradores = {} ("A", "Votação Única em Regime de Urgência"),
# dic_oradores["num_ordem"] = orador.num_ordem ("B", "1ª Votação"),
# dic_oradores["nom_parlamentar"] = parlamentar.nom_parlamentar ("C", "2ª e 3ª Votações")]:
# dic_oradores['sgl_partido'] = parlamentar.sgl_partido if tramitacao.turno == turno[0]:
# lst_oradores.append(dic_oradores) dic_votacao["des_turno"] = turno[1]
dic_votacao["txt_ementa"] = materia.ementa
dic_votacao["ordem_observacao"] = votacao.observacao
dic_votacao["nom_autor"] = ' '
autoria = Autoria.objects.filter(
materia=materia, primeiro_autor=True).first()
if autoria is not None:
autor = Autor.objects.filter(id=autoria.autor.id)
if autor is not None:
autor = autor.first()
if autor.tipo == 'Parlamentar':
parlamentar = Parlamentar.objects.filter(
id=autor.parlamentar.id)
dic_votacao["nom_autor"] = str(parlamentar.nome_completo)
elif autor.tipo == 'Comissao':
comissao = Comissao.objects.filter(
id=autor.comissao.id)
dic_votacao["nom_autor"] = str(comissao)
else:
dic_votacao["nom_autor"] = str(autor.nome)
elif autoria is None:
dic_votacao["nom_autor"] = 'Desconhecido'
dic_votacao["votacao_observacao"] = ' '
if not votacao.resultado:
resultado = RegistroVotacao.objects.filter(
tipo_resultado_votacao=votacao.tipo_votacao)
for i in resultado:
dic_votacao["nom_resultado"] = i.tipo_resultado_votacao.nome
if votacao.observacao:
dic_votacao["votacao_observacao"] = votacao.observacao
else:
dic_votacao["nom_resultado"] = "Matéria não votada"
dic_votacao["votacao_observacao"] = "Vazio"
lst_votacao.append(dic_votacao)
# Lista dos oradores nas Explicações Pessoais
lst_oradores = []
for orador in Orador.objects.filter(
sessao_plenaria=sessao):
for parlamentar in Parlamentar.objects.filter(
id=orador.parlamentar.id):
dic_oradores = {}
dic_oradores["num_ordem"] = orador.numero_ordem
dic_oradores["nom_parlamentar"] = parlamentar.nome_parlamentar
dic_oradores['sgl_partido'] = (
Filiacao.objects.filter(
parlamentar=parlamentar).first().partido.sigla)
lst_oradores.append(dic_oradores)
return (inf_basicas_dic,
lst_mesa,
lst_presenca_sessao,
lst_expedientes,
lst_expediente_materia,
lst_oradores_expediente,
lst_presenca_ordem_dia,
lst_votacao,
lst_oradores)
def relatorio_sessao_plenaria(request): def relatorio_sessao_plenaria(request):
@ -752,7 +819,8 @@ def relatorio_sessao_plenaria(request):
''' '''
response = HttpResponse(content_type='application/pdf') response = HttpResponse(content_type='application/pdf')
response['Content-Disposition'] = 'attachment; filename="relatorio_protocolo.pdf"' response['Content-Disposition'] = (
'attachment; filename="relatorio_protocolo.pdf"')
casa = CasaLegislativa.objects.first() casa = CasaLegislativa.objects.first()
@ -761,19 +829,35 @@ def relatorio_sessao_plenaria(request):
imagem = get_imagem(casa) imagem = get_imagem(casa)
# protocolos = Protocolo.objects.all()[:50] # protocolos = Protocolo.objects.all()[:50]
sessao = SessaoPlenaria.objects.first()
sessao_data = get_sessao_plenaria(sessao) (inf_basicas_dic,
lst_mesa,
pdf = pdf_sessao_plenaria_gerar.principal(None, lst_presenca_sessao,
imagem, lst_expedientes,
None, lst_expediente_materia,
sessao_data, lst_oradores_expediente,
cabecalho, lst_presenca_ordem_dia,
rodape) lst_votacao,
lst_oradores) = get_sessao_plenaria(sessao, casa)
pdf = pdf_sessao_plenaria_gerar.principal(
cabecalho,
rodape,
imagem,
None,
inf_basicas_dic,
lst_mesa,
lst_presenca_sessao,
lst_expedientes,
lst_expediente_materia,
lst_oradores_expediente,
lst_presenca_ordem_dia,
lst_votacao,
lst_oradores)
response.write(pdf) response.write(pdf)
return response
return response
def get_protocolos(prots): def get_protocolos(prots):

Loading…
Cancel
Save