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
def cabecalho(inf_basicas_dic,imagem):
def cabecalho(inf_basicas_dic, imagem):
"""
"""
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<lines>2cm 25.4cm 19cm 25.4cm</lines>\n'
tmp+='\t\t\t\t<setFont name="Helvetica-Bold" size="16"/>\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" size="12"/>\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'
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<lines>2cm 25.4cm 19cm 25.4cm</lines>\n'
tmp += '\t\t\t\t<setFont name="Helvetica-Bold" size="16"/>\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" size="12"/>\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
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
def paraStyle():
"""
"""
tmp=''
tmp+='\t<stylesheet>\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="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<blockBottomPadding length="1"/>\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<!--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<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<blockValign value="TOP"/>\n'
tmp+='\t\t</blockTableStyle>\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<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="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<blockValign value="TOP"/>\n'
tmp+='\t\t</blockTableStyle>\n'
tmp+='\t\t<initialize>\n'
tmp+='\t\t\t<paraStyle name="all" alignment="justify"/>\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="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="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="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</stylesheet>\n'
tmp = ''
tmp += '\t<stylesheet>\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="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<blockBottomPadding length="1"/>\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<!--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<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<blockValign value="TOP"/>\n'
tmp += '\t\t</blockTableStyle>\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<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="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<blockValign value="TOP"/>\n'
tmp += '\t\t</blockTableStyle>\n'
tmp += '\t\t<initialize>\n'
tmp += '\t\t\t<paraStyle name="all" alignment="justify"/>\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="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="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="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</stylesheet>\n'
return tmp
def inf_basicas(inf_basicas_dic):
"""
"""
tmp=""
tmp = ""
nom_sessao = inf_basicas_dic['nom_sessao']
num_sessao_plen = inf_basicas_dic["num_sessao_plen"]
num_sessao_leg = inf_basicas_dic["num_sessao_leg"]
num_legislatura = inf_basicas_dic["num_legislatura"]
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"]
hr_fim_sessao = inf_basicas_dic["hr_fim_sessao"]
if hr_fim_sessao is None:
hr_fim_sessao = ''
tmp+='\t\t<para style="P1">Informações Básicas</para>\n'
tmp+='\t\t<para style="P2">\n'
tmp+='\t\t\t<font color="white"> </font>\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>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'
tmp += '\t\t<para style="P1">Informações Básicas</para>\n'
tmp += '\t\t<para style="P2">\n'
tmp += '\t\t\t<font color="white"> </font>\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>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
def mesa(lst_mesa):
"""
"""
tmp=''
tmp+='\t\t<para style="P1">Mesa Diretora</para>\n'
tmp+='\t\t<para style="P2">\n'
tmp+='\t\t\t<font color="white"> </font>\n'
tmp+='\t\t</para>\n'
tmp = ''
tmp += '\t\t<para style="P1">Mesa Diretora</para>\n'
tmp += '\t\t<para style="P2">\n'
tmp += '\t\t\t<font color="white"> </font>\n'
tmp += '\t\t</para>\n'
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
def presenca(lst_presenca_sessao):
"""
"""
tmp = ''
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\t<font color="white"> </font>\n'
tmp+='\t\t</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\t<font color="white"> </font>\n'
tmp += '\t\t</para>\n'
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
def expedientes(lst_expedientes):
"""
"""
tmp = ''
tmp+='\t\t<para style="P1">Expedientes</para>\n'
tmp+='\t\t<para style="P2">\n'
tmp+='\t\t\t<font color="white"> </font>\n'
tmp+='\t\t</para>\n'
tmp += '\t\t<para style="P1">Expedientes</para>\n'
tmp += '\t\t<para style="P2">\n'
tmp += '\t\t\t<font color="white"> </font>\n'
tmp += '\t\t</para>\n'
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">\n'
tmp+='\t\t\t<font color="white"> </font>\n'
tmp+='\t\t</para>\n'
tmp += '\t\t<para style="P2"><b>' + \
expediente['nom_expediente'] + ': </b></para>\n' + \
'<para style="P2">' + \
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
def expediente_materia(lst_expediente_materia):
"""
"""
tmp = ''
tmp+='\t\t<para style="P1">Matérias do Expediente</para>\n\n'
tmp+='\t\t<para style="P2">\n'
tmp+='\t\t\t<font color="white"> </font>\n'
tmp+='\t\t</para>\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 += '\t\t<para style="P1">Matérias do Expediente</para>\n\n'
tmp += '\t\t<para style="P2">\n'
tmp += '\t\t\t<font color="white"> </font>\n'
tmp += '\t\t</para>\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'
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'
txt_ementa = expediente_materia['txt_ementa'].replace('&','&amp;')
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 += '<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'
txt_ementa = expediente_materia['txt_ementa'].replace('&', '&amp;')
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
def oradores_expediente(lst_oradores_expediente):
"""
"""
tmp = ''
tmp+='\t\t<para style="P1">Oradores do Expediente</para>\n'
tmp+='\t\t<para style="P2">\n'
tmp+='\t\t\t<font color="white"> </font>\n'
tmp+='\t\t</para>\n'
tmp += '\t\t<para style="P1">Oradores do Expediente</para>\n'
tmp += '\t\t<para style="P2">\n'
tmp += '\t\t\t<font color="white"> </font>\n'
tmp += '\t\t</para>\n'
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
def presenca_ordem_dia(lst_presenca_ordem_dia):
"""
"""
tmp = ''
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\t<font color="white"> </font>\n'
tmp+='\t\t</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\t<font color="white"> </font>\n'
tmp += '\t\t</para>\n'
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
def votacao(lst_votacao):
"""
"""
tmp = ''
tmp+='<para style="P1">Matérias da Ordem do Dia</para>\n\n'
tmp+='\t\t<para style="P2">\n'
tmp+='\t\t\t<font color="white"> </font>\n'
tmp+='\t\t</para>\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 += '<para style="P1">Matérias da Ordem do Dia</para>\n\n'
tmp += '\t\t<para style="P2">\n'
tmp += '\t\t\t<font color="white"> </font>\n'
tmp += '\t\t</para>\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'
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'
txt_ementa = votacao['txt_ementa'].replace('&','&amp;')
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 += '<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'
txt_ementa = votacao['txt_ementa'].replace('&', '&amp;')
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
def oradores(lst_oradores):
"""
"""
tmp = ''
tmp+='\t\t<para style="P1">Oradores das Explicações Pessoais</para>\n'
tmp+='\t\t<para style="P2">\n'
tmp+='\t\t\t<font color="white"> </font>\n'
tmp+='\t\t</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\t<font color="white"> </font>\n'
tmp += '\t\t</para>\n'
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
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+='<!DOCTYPE document SYSTEM "rml_1_0.dtd">\n'
tmp+='<document filename="relatorio.pdf">\n'
tmp+='\t<template pageSize="(21cm, 29.7cm)" title="Sessao Plenaria" author="Interlegis" allowSplitting="20">\n'
tmp+='\t\t<pageTemplate id="first">\n'
tmp+='\t\t\t<pageGraphics>\n'
tmp+=cabecalho(inf_basicas_dic,imagem)
tmp+=rodape(rodape_dic)
tmp+='\t\t\t</pageGraphics>\n'
tmp+='\t\t\t<frame id="first" x1="2cm" y1="4cm" width="17cm" height="20.5cm"/>\n'
tmp+='\t\t</pageTemplate>\n'
tmp+='\t</template>\n'
tmp+=paraStyle()
tmp+='\t<story>\n'
tmp+=inf_basicas(inf_basicas_dic)
tmp+=mesa(lst_mesa)
tmp+=presenca(lst_presenca_sessao)
tmp+=expedientes(lst_expedientes)
tmp+=expediente_materia(lst_expediente_materia)
tmp+=oradores_expediente(lst_oradores_expediente)
tmp+=presenca_ordem_dia(lst_presenca_ordem_dia)
tmp+=votacao(lst_votacao)
tmp+=oradores(lst_oradores)
tmp+='\t</story>\n'
tmp+='</document>\n'
tmp_pdf=parseString(tmp)
tmp = ''
tmp += '<?xml version="1.0" encoding="utf-8" standalone="no" ?>\n'
tmp += '<!DOCTYPE document SYSTEM "rml_1_0.dtd">\n'
tmp += '<document filename="relatorio.pdf">\n'
tmp += '\t<template pageSize="(21cm, 29.7cm)" title="Sessao Plenaria" author="Interlegis" allowSplitting="20">\n'
tmp += '\t\t<pageTemplate id="first">\n'
tmp += '\t\t\t<pageGraphics>\n'
tmp += cabecalho(inf_basicas_dic, imagem)
tmp += rodape(rodape_dic)
tmp += '\t\t\t</pageGraphics>\n'
tmp += '\t\t\t<frame id="first" x1="2cm" y1="4cm" width="17cm" height="20.5cm"/>\n'
tmp += '\t\t</pageTemplate>\n'
tmp += '\t</template>\n'
tmp += paraStyle()
tmp += '\t<story>\n'
tmp += inf_basicas(inf_basicas_dic)
tmp += mesa(lst_mesa)
tmp += presenca(lst_presenca_sessao)
tmp += expedientes(lst_expedientes)
tmp += expediente_materia(lst_expediente_materia)
tmp += oradores_expediente(lst_oradores_expediente)
tmp += presenca_ordem_dia(lst_presenca_ordem_dia)
tmp += votacao(lst_votacao)
tmp += oradores(lst_oradores)
tmp += '\t</story>\n'
tmp += '</document>\n'
tmp_pdf = parseString(tmp)
return tmp_pdf
# if hasattr(context.temp_folder,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_etiqueta_protocolo,
relatorio_pauta_sessao,
relatorio_sessao_plenaria)
relatorio_sessao_plenaria,)
urlpatterns = [
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,
Tramitacao, UnidadeTramitacao)
from parlamentares.models import Parlamentar
from parlamentares.models import (Parlamentar, ComposicaoMesa,
CargoMesa, Filiacao)
from protocoloadm.models import (DocumentoAdministrativo, Protocolo,
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,
pdf_documento_administrativo_gerar,
@ -20,8 +25,10 @@ from .templates import (pdf_capa_processo_gerar,
pdf_materia_gerar,
pdf_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):
@ -539,211 +546,271 @@ def get_espelho(mats):
materias.append(dic)
return materias
def get_sessao_plenaria(sessao):
pass
# if context.REQUEST['data']!='':
# dat_inicio_sessao = context.REQUEST['data']
# pauta = [] # lista contendo a pauta da ordem do dia a ser impressa
# data = context.pysc.data_converter_pysc(dat_inicio_sessao) # converte data para formato yyyy/mm/dd
# codigo = context.REQUEST['cod_sessao_plen']
# # seleciona as matérias que compõem a pauta na data escolhida
# for sessao in context.zsql.sessao_plenaria_obter_zsql(dat_inicio_sessao=data, cod_sessao_plen=codigo, ind_excluido=0):
# inf_basicas_dic = {} # dicionário que armazenará as informacoes basicas da sessao plenaria
# # seleciona o tipo da sessao plenaria
# tipo_sessao = context.zsql.tipo_sessao_plenaria_obter_zsql(tip_sessao=sessao.tip_sessao,ind_excluido=0)[0]
# inf_basicas_dic["num_sessao_plen"] = sessao.num_sessao_plen
# inf_basicas_dic["nom_sessao"] = tipo_sessao.nom_sessao
# inf_basicas_dic["num_legislatura"] = sessao.num_legislatura
# inf_basicas_dic["num_sessao_leg"] = sessao.num_sessao_leg
# inf_basicas_dic["dat_inicio_sessao"] = sessao.dat_inicio_sessao
# inf_basicas_dic["hr_inicio_sessao"] = sessao.hr_inicio_sessao
# inf_basicas_dic["dat_fim_sessao"] = sessao.dat_fim_sessao
# inf_basicas_dic["hr_fim_sessao"] = sessao.hr_fim_sessao
# # Lista da composicao da mesa diretora
# lst_mesa = []
# for composicao in context.zsql.composicao_mesa_sessao_obter_zsql(cod_sessao_plen=sessao.cod_sessao_plen,ind_excluido=0):
# for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=composicao.cod_parlamentar,ind_excluido=0):
# for cargo in context.zsql.cargo_mesa_obter_zsql(cod_cargo=composicao.cod_cargo, ind_excluido=0):
# dic_mesa = {}
# dic_mesa['nom_parlamentar'] = parlamentar.nom_parlamentar
# dic_mesa['sgl_partido'] = parlamentar.sgl_partido
# dic_mesa['des_cargo'] = cargo.des_cargo
# lst_mesa.append(dic_mesa)
# # Lista de presença na sessão
# lst_presenca_sessao = []
# for presenca in context.zsql.presenca_sessao_obter_zsql(cod_sessao_plen=sessao.cod_sessao_plen, ind_excluido=0):
# for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=presenca.cod_parlamentar,ind_excluido=0):
# dic_presenca = {}
# dic_presenca["nom_parlamentar"] = parlamentar.nom_parlamentar
# dic_presenca['sgl_partido'] = parlamentar.sgl_partido
# lst_presenca_sessao.append(dic_presenca)
# # Exibe os Expedientes
# lst_expedientes = []
# dic_expedientes = None
# for tip_expediente in context.zsql.tipo_expediente_obter_zsql():
# for expediente in context.zsql.expediente_obter_zsql(cod_sessao_plen=sessao.cod_sessao_plen,cod_expediente=tip_expediente.cod_expediente, ind_excluido=0):
# dic_expedientes = {}
# dic_expedientes["nom_expediente"] = tip_expediente.nom_expediente
# dic_expedientes["txt_expediente"] = expediente.txt_expediente
# if dic_expedientes:
# lst_expedientes.append(dic_expedientes)
# # Lista das matérias do Expediente, incluindo o resultado das votacoes
# 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):
# # seleciona os detalhes de uma matéria
# materia = context.zsql.materia_obter_zsql(cod_materia=expediente_materia.cod_materia)[0]
# dic_expediente_materia = {}
# dic_expediente_materia["num_ordem"] = expediente_materia.num_ordem
# 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["des_numeracao"]=""
# numeracao = context.zsql.numeracao_obter_zsql(cod_materia=expediente_materia.cod_materia)
# if len(numeracao):
# numeracao = numeracao[0]
# dic_expediente_materia["des_numeracao"] = str(numeracao.num_materia)+"/"+str(numeracao.ano_materia)
# tram = context.zsql.tramitacao_turno_obter_zsql(cod_materia=materia.cod_materia, dat_inicio_sessao=data)
# dic_expediente_materia["des_turno"]=""
# if len(tram):
# tram_turno = tram[0]
# 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")]:
# if tram_turno.sgl_turno == turno[0]:
# dic_expediente_materia["des_turno"] = turno[1]
# dic_expediente_materia["txt_ementa"] = materia.txt_ementa
# dic_expediente_materia["ordem_observacao"] = expediente_materia.ordem_observacao
# dic_expediente_materia["nom_autor"] = ""
# autoria = context.zsql.autoria_obter_zsql(cod_materia=expediente_materia.cod_materia, ind_primeiro_autor=1)
# if len(autoria) > 0: # se existe autor
# autoria = autoria[0]
# autor = context.zsql.autor_obter_zsql(cod_autor=autoria.cod_autor)
# if len(autor) > 0:
# autor = autor[0]
# try:
# if autor.des_tipo_autor == "Parlamentar":
# parlamentar = context.zsql.parlamentar_obter_zsql(cod_parlamentar=autor.cod_parlamentar)[0]
# dic_expediente_materia["nom_autor"] = parlamentar.nom_parlamentar
# elif autor.des_tipo_autor == "Comissao":
# comissao = context.zsql.comissao_obter_zsql(cod_comissao=autor.cod_comissao)[0]
# dic_expediente_materia["nom_autor"] = comissao.nom_comissao
# elif autor.nom_autor != "":
# dic_expediente_materia["nom_autor"] = autor.nom_autor
# else:
# dic_expediente_materia["nom_autor"] = autor.des_tipo_autor
# except:
# dic_expediente_materia["nom_autor"] = "NC-em"
# dic_expediente_materia["votacao_observacao"]=""
# 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)
# for i in resultado:
# dic_expediente_materia["nom_resultado"] = i.nom_resultado
# if expediente_materia.votacao_observacao:
# dic_expediente_materia["votacao_observacao"] = expediente_materia.votacao_observacao
# else:
# dic_expediente_materia["nom_resultado"] = "Matéria não votada"
# dic_expediente_materia["votacao_observacao"] = "Vazio"
# lst_expediente_materia.append(dic_expediente_materia)
# # Lista dos oradores do Expediente
# lst_oradores_expediente = []
# 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_oradores_expediente = {}
# dic_oradores_expediente["num_ordem"] = orador_expediente.num_ordem
# dic_oradores_expediente["nom_parlamentar"] = parlamentar.nom_parlamentar
# dic_oradores_expediente['sgl_partido'] = parlamentar.sgl_partido
# lst_oradores_expediente.append(dic_oradores_expediente)
# # Lista presença na ordem do dia
# lst_presenca_ordem_dia = []
# for presenca_ordem_dia in context.zsql.presenca_ordem_dia_obter_zsql(cod_sessao_plen=sessao.cod_sessao_plen,ind_excluido=0):
# for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=presenca_ordem_dia.cod_parlamentar,ind_excluido=0):
# dic_presenca_ordem_dia = {}
# dic_presenca_ordem_dia['nom_parlamentar'] = parlamentar.nom_parlamentar
# dic_presenca_ordem_dia['sgl_partido'] = parlamentar.sgl_partido
# lst_presenca_ordem_dia.append(dic_presenca_ordem_dia)
# # Lista das matérias da Ordem do Dia, incluindo o resultado das votacoes
# lst_votacao=[]
# for votacao in context.zsql.votacao_ordem_dia_obter_zsql(dat_ordem = data, cod_sessao_plen=sessao.cod_sessao_plen, ind_excluido=0):
# # seleciona os detalhes de uma matéria
# materia = context.zsql.materia_obter_zsql(cod_materia=votacao.cod_materia)[0]
# dic_votacao = {}
# dic_votacao["num_ordem"] = votacao.num_ordem
# dic_votacao["id_materia"] = materia.sgl_tipo_materia+" "+materia.des_tipo_materia+" "+str(materia.num_ident_basica)+"/"+str(materia.ano_ident_basica)
# dic_votacao["des_numeracao"]=""
# numeracao = context.zsql.numeracao_obter_zsql(cod_materia=votacao.cod_materia)
# if len(numeracao):
# numeracao = numeracao[0]
# dic_votacao["des_numeracao"] = str(numeracao.num_materia)+"/"+str(numeracao.ano_materia)
# dic_votacao["des_turno"]=""
# tramitacao = context.zsql.tramitacao_obter_zsql(cod_materia=materia.cod_materia, ind_ult_tramitacao=1)
# if len(tramitacao):
# tramitacao = tramitacao[0]
# tram = context.zsql.tramitacao_turno_obter_zsql(cod_materia=materia.cod_materia, dat_inicio_sessao=data)
# if len(tram):
# tram_turno = tram[0]
# if tram_turno.sgl_turno != "":
# 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")]:
# if tram_turno.sgl_turno == turno[0]:
# dic_votacao["des_turno"] = turno[1]
# dic_votacao["txt_ementa"] = materia.txt_ementa
# dic_votacao["ordem_observacao"] = votacao.ordem_observacao
# dic_votacao["nom_autor"] = ""
# autoria = context.zsql.autoria_obter_zsql(cod_materia=votacao.cod_materia, ind_primeiro_autor=1)
# if len(autoria) > 0: # se existe autor
# autoria = autoria[0]
# autor = context.zsql.autor_obter_zsql(cod_autor=autoria.cod_autor)
# if len(autor) > 0:
# autor = autor[0]
# try:
# if autor.des_tipo_autor == "Parlamentar":
# parlamentar = context.zsql.parlamentar_obter_zsql(cod_parlamentar=autor.cod_parlamentar)[0]
# dic_votacao["nom_autor"] = parlamentar.nom_parlamentar
# elif autor.des_tipo_autor == "Comissao":
# comissao = context.zsql.comissao_obter_zsql(cod_comissao=autor.cod_comissao)[0]
# dic_votacao["nom_autor"] = comissao.nom_comissao
# elif autor.nom_autor != "":
# dic_votacao["nom_autor"] = autor.nom_autor
# else:
# dic_votacao["nom_autor"] = autor.des_tipo_autor
# except:
# dic_votacao["nom_autor"] = "NC-od"
# dic_votacao["votacao_observacao"]=""
# if votacao.tip_resultado_votacao:
# resultado = context.zsql.tipo_resultado_votacao_obter_zsql(tip_resultado_votacao=votacao.tip_resultado_votacao, ind_excluido=0)
# for i in resultado:
# dic_votacao["nom_resultado"] = i.nom_resultado
# if votacao.votacao_observacao:
# dic_votacao["votacao_observacao"] = votacao.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 context.zsql.oradores_obter_zsql(cod_sessao_plen=sessao.cod_sessao_plen, ind_excluido=0):
# for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=orador.cod_parlamentar,ind_excluido=0):
# dic_oradores = {}
# dic_oradores["num_ordem"] = orador.num_ordem
# dic_oradores["nom_parlamentar"] = parlamentar.nom_parlamentar
# dic_oradores['sgl_partido'] = parlamentar.sgl_partido
# lst_oradores.append(dic_oradores)
def get_sessao_plenaria(sessao, casa):
inf_basicas_dic = {}
inf_basicas_dic["num_sessao_plen"] = str(sessao.numero)
inf_basicas_dic["nom_sessao"] = sessao.tipo.nome
inf_basicas_dic["num_legislatura"] = str(sessao.legislatura)
inf_basicas_dic["num_sessao_leg"] = sessao.sessao_legislativa.numero
inf_basicas_dic["dat_inicio_sessao"] = sessao.data_inicio.strftime(
"%d/%m/%Y")
inf_basicas_dic["hr_inicio_sessao"] = sessao.hora_inicio
inf_basicas_dic["dat_fim_sessao"] = sessao.data_fim.strftime("%d/%m/%Y")
inf_basicas_dic["hr_fim_sessao"] = sessao.hora_fim
inf_basicas_dic["nom_camara"] = casa.nome
# Lista da composicao da mesa diretora
lst_mesa = []
for composicao in ComposicaoMesa.objects.filter(
sessao_legislativa=sessao.sessao_legislativa):
for parlamentar in Parlamentar.objects.filter(
id=composicao.parlamentar.id):
for cargo in CargoMesa.objects.filter(id=composicao.cargo.id):
dic_mesa = {}
dic_mesa['nom_parlamentar'] = parlamentar.nome_parlamentar
dic_mesa['sgl_partido'] = Filiacao.objects.filter(
parlamentar=parlamentar).first().partido.sigla
dic_mesa['des_cargo'] = cargo.descricao
lst_mesa.append(dic_mesa)
# Lista de presença na sessão
lst_presenca_sessao = []
for presenca in SessaoPlenariaPresenca.objects.filter(
sessao_plenaria=sessao):
for parlamentar in Parlamentar.objects.filter(
id=presenca.parlamentar.id):
dic_presenca = {}
dic_presenca["nom_parlamentar"] = parlamentar.nome_parlamentar
dic_presenca['sgl_partido'] = Filiacao.objects.filter(
parlamentar=parlamentar).first().partido.sigla
lst_presenca_sessao.append(dic_presenca)
# Exibe os Expedientes
lst_expedientes = []
for tip_expediente in TipoExpediente.objects.all():
for expediente in ExpedienteSessao.objects.filter(
sessao_plenaria=sessao, tipo=tip_expediente):
dic_expedientes = {}
dic_expedientes["nom_expediente"] = str(tip_expediente)
dic_expedientes["txt_expediente"] = (
BeautifulSoup(expediente.conteudo).text)
if dic_expedientes:
lst_expedientes.append(dic_expedientes)
# Lista das matérias do Expediente, incluindo o resultado das votacoes
lst_expediente_materia = []
for expediente_materia in ExpedienteMateria.objects.filter(
sessao_plenaria=sessao):
# seleciona os detalhes de uma matéria
materia = MateriaLegislativa.objects.filter(
id=expediente_materia.materia.id).first()
dic_expediente_materia = {}
dic_expediente_materia["num_ordem"] = expediente_materia.numero_ordem
dic_expediente_materia["id_materia"] = (materia.tipo.sigla + ' ' +
materia.tipo.descricao + ' ' +
str(materia.numero) + '/' +
str(materia.ano))
dic_expediente_materia["des_numeracao"] = ' '
numeracao = Numeracao.objects.filter(
materia=expediente_materia.materia).first()
if numeracao is not None:
dic_expediente_materia["des_numeracao"] = (
str(numeracao.numero) + '/' + str(numeracao.ano))
dic_expediente_materia["des_turno"] = ' '
tram = Tramitacao.objects.filter(
materia=materia).first()
if tram is not None:
if tram.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")]:
if tram.turno == turno[0]:
dic_expediente_materia["des_turno"] = turno[1]
dic_expediente_materia["txt_ementa"] = str(materia.ementa)
dic_expediente_materia["ordem_observacao"] = ' ' # TODO
dic_expediente_materia["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_expediente_materia["nom_autor"] = str(
parlamentar.nome_completo)
elif autor.tipo == 'Comissao':
comissao = Comissao.objects.filter(id=autor.comissao.id)
dic_expediente_materia["nom_autor"] = str(comissao)
else:
dic_expediente_materia["nom_autor"] = str(autor.nome)
elif autoria is None:
dic_expediente_materia["nom_autor"] = 'Desconhecido'
dic_expediente_materia["votacao_observacao"] = ' '
if not expediente_materia.resultado:
resultado = RegistroVotacao.objects.filter(
tipo_resultado_votacao=expediente_materia.tipo_votacao)
for i in resultado:
dic_expediente_materia["nom_resultado"] = (
i.tipo_resultado_votacao.nome)
dic_expediente_materia["votacao_observacao"] = (
expediente_materia.observacao)
else:
dic_expediente_materia["nom_resultado"] = "Matéria não votada"
dic_expediente_materia["votacao_observacao"] = "Vazio"
lst_expediente_materia.append(dic_expediente_materia)
# Lista dos oradores do Expediente
lst_oradores_expediente = []
for orador_expediente in OradorExpediente.objects.filter(
sessao_plenaria=sessao):
for parlamentar in Parlamentar.objects.filter(
id=orador_expediente.parlamentar.id):
dic_oradores_expediente = {}
dic_oradores_expediente["num_ordem"] = (
orador_expediente.numero_ordem)
dic_oradores_expediente["nom_parlamentar"] = (
parlamentar.nome_parlamentar)
dic_oradores_expediente['sgl_partido'] = (
Filiacao.objects.filter(
parlamentar=parlamentar).first().partido.sigla)
lst_oradores_expediente.append(dic_oradores_expediente)
# Lista presença na ordem do dia
lst_presenca_ordem_dia = []
for presenca_ordem_dia in PresencaOrdemDia.objects.filter(
sessao_plenaria=sessao):
for parlamentar in Parlamentar.objects.filter(
id=presenca_ordem_dia.parlamentar.id):
dic_presenca_ordem_dia = {}
dic_presenca_ordem_dia['nom_parlamentar'] = (
parlamentar.nome_parlamentar)
dic_presenca_ordem_dia['sgl_partido'] = (
Filiacao.objects.filter(
parlamentar=parlamentar).first().partido.sigla)
lst_oradores_expediente.append(dic_oradores_expediente)
lst_presenca_ordem_dia.append(dic_presenca_ordem_dia)
# Lista das matérias da Ordem do Dia, incluindo o resultado das votacoes
lst_votacao = []
for votacao in OrdemDia.objects.filter(
sessao_plenaria=sessao):
# seleciona os detalhes de uma matéria
materia = MateriaLegislativa.objects.filter(
id=votacao.materia.id).first()
dic_votacao = {}
dic_votacao["num_ordem"] = votacao.numero_ordem
dic_votacao["id_materia"] = (
materia.tipo.sigla + ' ' +
materia.tipo.descricao + ' ' +
str(materia.numero) + '/' +
str(materia.ano))
dic_votacao["des_numeracao"] = ' '
numeracao = Numeracao.objects.filter(
materia=votacao.materia).first()
if numeracao is not None:
dic_votacao["des_numeracao"] = (
str(numeracao.numero) +
'/' +
str(numeracao.ano))
dic_votacao["des_turno"] = ' '
tramitacao = Tramitacao.objects.filter(
materia=materia).first()
if tramitacao is not None:
if not tramitacao.turno:
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")]:
if tramitacao.turno == turno[0]:
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):
@ -752,7 +819,8 @@ def relatorio_sessao_plenaria(request):
'''
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()
@ -761,19 +829,35 @@ def relatorio_sessao_plenaria(request):
imagem = get_imagem(casa)
# protocolos = Protocolo.objects.all()[:50]
sessao_data = get_sessao_plenaria(sessao)
pdf = pdf_sessao_plenaria_gerar.principal(None,
imagem,
None,
sessao_data,
cabecalho,
rodape)
sessao = SessaoPlenaria.objects.first()
(inf_basicas_dic,
lst_mesa,
lst_presenca_sessao,
lst_expedientes,
lst_expediente_materia,
lst_oradores_expediente,
lst_presenca_ordem_dia,
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)
return response
return response
def get_protocolos(prots):

Loading…
Cancel
Save