Browse Source

Add sessao_plenaria report

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

103
relatorios/templates/pdf_sessao_plenaria_gerar.py

@ -13,48 +13,34 @@ 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="' + \
imagem + '"/>\n'
tmp += '\t\t\t\t<lines>2cm 25.4cm 19cm 25.4cm</lines>\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<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<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<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<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<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 += '\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): def rodape(rodape_dic):
"""
"""
tmp = '' 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<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<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="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<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.7cm">' + \
tmp+='\t\t\t\t<drawCentredString x="10.5cm" y="2.3cm">' + linha2 + '</drawCentredString>\n' 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():
""" """
""" """
@ -96,6 +82,7 @@ def paraStyle():
return tmp return tmp
def inf_basicas(inf_basicas_dic): def inf_basicas(inf_basicas_dic):
""" """
""" """
@ -115,12 +102,16 @@ def inf_basicas(inf_basicas_dic):
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):
""" """
@ -131,9 +122,12 @@ def mesa(lst_mesa):
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):
""" """
@ -144,9 +138,12 @@ def presenca(lst_presenca_sessao):
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):
""" """
@ -157,12 +154,16 @@ def expedientes(lst_expedientes):
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>' + \
expediente['nom_expediente'] + ': </b></para>\n' + \
'<para style="P2">' + \
expediente['txt_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'
return tmp return tmp
def expediente_materia(lst_expediente_materia): def expediente_materia(lst_expediente_materia):
""" """
""" """
@ -174,14 +175,18 @@ def expediente_materia(lst_expediente_materia):
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[
'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;') txt_ementa = expediente_materia['txt_ementa'].replace('&', '&amp;')
tmp += '<td><para style="P4">' + txt_ementa + '</para></td>\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 += '<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):
""" """
@ -192,9 +197,11 @@ def oradores_expediente(lst_oradores_expediente):
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):
""" """
@ -205,9 +212,12 @@ def presenca_ordem_dia(lst_presenca_ordem_dia):
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):
""" """
""" """
@ -220,14 +230,18 @@ def votacao(lst_votacao):
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[
'des_turno'] + '</para>\n' + '<para style="P3"><b>Autor: </b>' + votacao['nom_autor'] + '</para></td>\n'
txt_ementa = votacao['txt_ementa'].replace('&', '&amp;') txt_ementa = votacao['txt_ementa'].replace('&', '&amp;')
tmp += '<td><para style="P4">' + txt_ementa + '</para></td>\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 += '<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):
""" """
@ -238,13 +252,15 @@ def oradores(lst_oradores):
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 = ''
@ -274,7 +290,6 @@ def principal(cabecalho, rodape, sessao, imagem, inf_basicas_dic):
tmp += '\t</story>\n' tmp += '\t</story>\n'
tmp += '</document>\n' tmp += '</document>\n'
tmp_pdf = parseString(tmp) 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'),

512
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 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 # Lista dos oradores do Expediente
# lst_oradores = [] lst_oradores_expediente = []
# for orador in context.zsql.oradores_obter_zsql(cod_sessao_plen=sessao.cod_sessao_plen, ind_excluido=0): for orador_expediente in OradorExpediente.objects.filter(
# for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=orador.cod_parlamentar,ind_excluido=0): sessao_plenaria=sessao):
# dic_oradores = {} for parlamentar in Parlamentar.objects.filter(
# dic_oradores["num_ordem"] = orador.num_ordem id=orador_expediente.parlamentar.id):
# dic_oradores["nom_parlamentar"] = parlamentar.nom_parlamentar dic_oradores_expediente = {}
# dic_oradores['sgl_partido'] = parlamentar.sgl_partido dic_oradores_expediente["num_ordem"] = (
# lst_oradores.append(dic_oradores) 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): 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,20 +829,36 @@ 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()
(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)
sessao_data = get_sessao_plenaria(sessao) pdf = pdf_sessao_plenaria_gerar.principal(
cabecalho,
pdf = pdf_sessao_plenaria_gerar.principal(None, rodape,
imagem, imagem,
None, None,
sessao_data, inf_basicas_dic,
cabecalho, lst_mesa,
rodape) 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):
protocolos = [] protocolos = []

Loading…
Cancel
Save