##parameters=rodape_dic, sessao='', imagem, inf_basicas_dic, lst_mesa, lst_presenca_sessao, lst_expedientes, lst_expediente_materia, lst_oradores_expediente, lst_presenca_ordem_dia, lst_votacao, lst_oradores """Script para geração do PDF das sessoes plenarias Autor: Gustavo Lepri Atualizado por Luciano De Fázio - 22/03/2012 versão: 1.0 """ import time from cStringIO import StringIO from trml2pdf import parseString def cabecalho(inf_basicas_dic,imagem): """ """ tmp='' tmp+='\t\t\t\t\n' tmp+='\t\t\t\t2cm 25.4cm 19cm 25.4cm\n' tmp+='\t\t\t\t\n' tmp+='\t\t\t\t' + str(inf_basicas_dic["nom_camara"]) + '\n' tmp+='\t\t\t\t\n' tmp+='\t\t\t\tSistema de Apoio ao Processo Legislativo\n' tmp+='\t\t\t\t\n' tmp+='\t\t\t\tResumo 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 \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\t2cm 3.2cm 19cm 3.2cm\n' tmp+='\t\t\t\t\n' tmp+='\t\t\t\t' + data_emissao + '\n' tmp+='\t\t\t\tPágina \n' tmp+='\t\t\t\t' + linha1 + '\n' tmp+='\t\t\t\t' + linha2 + '\n' return tmp def paraStyle(): """ """ tmp='' tmp+='\t\n' tmp+='\t\t\n' tmp+='\t\t\t\n' tmp+='\t\t\t\n' tmp+='\t\t\t\n' tmp+='\t\t\t\n' tmp+='\t\t\t\n' tmp+='\t\t\t\n' tmp+='\t\t\t\n' tmp+='\t\t\t\n' tmp+='\t\t\t\n' tmp+='\t\t\t\n' tmp+='\t\t\t\n' tmp+='\t\t\n' tmp+='\t\t\n' tmp+='\t\t\t\n' tmp+='\t\t\t\n' tmp+='\t\t\t\n' tmp+='\t\t\t\n' tmp +='\t\t\t\n' tmp+='\t\t\t\n' tmp+='\t\t\n' tmp+='\t\t\n' tmp+='\t\t\t\n' tmp+='\t\t\n' tmp+='\t\t\n' tmp+='\t\t\n' tmp+='\t\t\n' tmp+='\t\t\n' tmp+='\t\t\n' tmp+='\t\t\n' tmp+='\t\t\n' tmp+='\t\n' return tmp def inf_basicas(inf_basicas_dic): """ """ 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"] 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\tInformações Básicas\n' tmp+='\t\t\n' tmp+='\t\t\t \n' tmp+='\t\t\n' tmp+='\t\tTipo da Sessão: ' + nom_sessao + '\n' tmp+='\t\tAbertura: ' + dat_inicio_sessao + ' - ' + hr_inicio_sessao + '\n' tmp+='\t\tEncerramento: ' + dat_fim_sessao + ' - ' + hr_fim_sessao + '\n' return tmp def mesa(lst_mesa): """ """ tmp='' tmp+='\t\tMesa Diretora\n' tmp+='\t\t\n' tmp+='\t\t\t \n' tmp+='\t\t\n' for mesa in lst_mesa: tmp+='\t\t'+ str(mesa['des_cargo']) +': ' + str(mesa['nom_parlamentar']) + '/' + str(mesa['sgl_partido']) +'\n' return tmp def presenca(lst_presenca_sessao): """ """ tmp = '' tmp+='\t\tLista de Presença da Sessão\n' tmp+='\t\t\n' tmp+='\t\t\t \n' tmp+='\t\t\n' for presenca in lst_presenca_sessao: tmp+='\t\t'+ str(presenca['nom_parlamentar']) + '/' + str(presenca['sgl_partido']) +'\n' return tmp def expedientes(lst_expedientes): """ """ tmp = '' tmp+='\t\tExpedientes\n' tmp+='\t\t\n' tmp+='\t\t\t \n' tmp+='\t\t\n' for expediente in lst_expedientes: tmp+='\t\t' + expediente['nom_expediente'] +': \n' + '' + str(expediente['txt_expediente']) +'\n' tmp+='\t\t\n' tmp+='\t\t\t \n' tmp+='\t\t\n' return tmp def expediente_materia(lst_expediente_materia): """ """ tmp = '' tmp+='\t\tMatérias do Expediente\n\n' tmp+='\t\t\n' tmp+='\t\t\t \n' tmp+='\t\t\n' tmp+='\n' tmp+='MatériaEmentaResultado da Votação\n' for expediente_materia in lst_expediente_materia: tmp+= '' + str(expediente_materia['num_ordem']) + ' - ' + expediente_materia['id_materia'] + '\n' + 'Turno: ' + expediente_materia['des_turno'] + '\n' + 'Autor: ' + expediente_materia['nom_autor'] +'\n' txt_ementa = expediente_materia['txt_ementa'].replace('&','&') tmp+='' + txt_ementa + '\n' tmp+='' + expediente_materia['nom_resultado'] + '\n' + '' + expediente_materia['votacao_observacao'] + '\n' tmp+='\t\t\n' return tmp def oradores_expediente(lst_oradores_expediente): """ """ tmp = '' tmp+='\t\tOradores do Expediente\n' tmp+='\t\t\n' tmp+='\t\t\t \n' tmp+='\t\t\n' for orador_expediente in lst_oradores_expediente: tmp+='\t\t'+ str(orador_expediente['num_ordem']) +' - ' + orador_expediente['nom_parlamentar'] + '/' + str(orador_expediente['sgl_partido']) +'\n' return tmp def presenca_ordem_dia(lst_presenca_ordem_dia): """ """ tmp = '' tmp+='\t\tLista de Presença da Ordem do Dia\n' tmp+='\t\t\n' tmp+='\t\t\t \n' tmp+='\t\t\n' for presenca_ordem_dia in lst_presenca_ordem_dia: tmp+='\t\t'+ str(presenca_ordem_dia['nom_parlamentar']) + '/' + str(presenca_ordem_dia['sgl_partido']) +'\n' return tmp def votacao(lst_votacao): """ """ tmp = '' tmp+='Matérias da Ordem do Dia\n\n' tmp+='\t\t\n' tmp+='\t\t\t \n' tmp+='\t\t\n' tmp+='\n' tmp+='MatériaEmentaResultado da Votação\n' for votacao in lst_votacao: tmp+= ''+ str(votacao['num_ordem']) + ' - ' + votacao['id_materia'] + '\n' + 'Turno: ' + votacao['des_turno'] + '\n' + 'Autor: ' + votacao['nom_autor'] +'\n' txt_ementa = votacao['txt_ementa'].replace('&','&') tmp+='' + txt_ementa + '\n' tmp+='' + votacao['nom_resultado'] + '\n' + '' + votacao['votacao_observacao'] + '\n' tmp+='\t\t\n' return tmp def oradores(lst_oradores): """ """ tmp = '' tmp+='\t\tOradores das Explicações Pessoais\n' tmp+='\t\t\n' tmp+='\t\t\t \n' tmp+='\t\t\n' for orador in lst_oradores: tmp+='\t\t'+ str(orador['num_ordem']) +' - ' + orador['nom_parlamentar'] + '/' + str(orador['sgl_partido']) +'\n' return tmp def principal(cabecalho, rodape, sessao, imagem, inf_basicas_dic): """ """ arquivoPdf=str(int(time.time()*100))+".pdf" tmp='' tmp+='\n' tmp+='\n' tmp+='\n' tmp+='\t\n' tmp+=paraStyle() tmp+='\t\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\n' tmp+='\n' tmp_pdf=parseString(tmp) if hasattr(context.temp_folder,arquivoPdf): context.temp_folder.manage_delObjects(ids=arquivoPdf) context.temp_folder.manage_addFile(arquivoPdf) arq=context.temp_folder[arquivoPdf] arq.manage_edit(title='Arquivo PDF temporario.',filedata=tmp_pdf,content_type='application/pdf') return "/temp_folder/"+arquivoPdf return principal(cabecalho, rodape, sessao, imagem, inf_basicas_dic)