Sistema de Apoio ao Processo Legislativo
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

175 lines
5.1 KiB

from datetime import datetime
from django.http import HttpResponse
from base.models import CasaLegislativa
from base.views import ESTADOS
from materia.models import Autoria, MateriaLegislativa, Tramitacao
from .templates import pdf_materia_gerar
def get_cabecalho(casa):
cabecalho = {}
cabecalho["nom_casa"] = casa.nome
cabecalho["nom_estado"] = "Estado de " + ESTADOS[casa.uf.upper()]
return cabecalho
def get_imagem(casa):
if casa.logotipo:
return casa.logotipo.path
else:
# TODO: recuperar de uma variavel de sistema
return 'static/img/brasao_transp.gif'
def get_rodape(casa):
if len(casa.cep) == 8:
cep = casa.cep[:4] + "-" + casa.cep[5:]
else:
cep = ""
linha1 = casa.endereco
if cep:
if casa.endereco:
linha1 = linha1 + " - "
linha1 = linha1 + "CEP " + cep
# substituindo nom_localidade por municipio e sgl_uf por uf
if casa.municipio:
linha1 = linha1 + " - " + casa.municipio + " " + casa.uf
if casa.telefone:
linha1 = linha1 + " Tel.: " + casa.telefone
if casa.endereco_web:
linha2 = casa.endereco_web
else:
linha2 = ""
if casa.email:
if casa.endereco_web:
linha2 = linha2 + " - "
linha2 = linha2 + "E-mail: " + casa.email
data_emissao = datetime.today().strftime("%d/%m/%Y")
return [linha1, linha2, data_emissao]
def get_materias(mats):
materias = []
for materia in mats:
dic = {}
dic['titulo'] = materia.tipo.sigla + " " + materia.tipo.descricao \
+ " " + str(materia.numero) + "/" + str(materia.ano)
dic['txt_ementa'] = materia.ementa
autores = Autoria.objects.filter(materia=materia)
dic['nom_autor'] = " "
for autoria in autores:
if autoria.autor.parlamentar:
dic['nom_autor'] = autoria.autor.parlamentar.nome_completo
elif autoria.autor.comissao:
dic['nom_autor'] = autoria.autor.comissao.nome
des_status = ''
txt_tramitacao = ''
dic['localizacao_atual'] = " "
tramitacoes = Tramitacao.objects.filter(
unidade_tramitacao_destino__isnull=True).order_by(
'data_tramitacao')
for tramitacao in tramitacoes:
des_status = tramitacao.status.descricao
txt_tramitacao = tramitacao.texto
# for tramitacao in context.zsql
# .tramitacao_obter_zsql(cod_materia
# =materia.cod_materia,ind_ult_tramitacao=1):
# if tramitacao.cod_unid_tram_dest:
# cod_unid_tram = tramitacao.cod_unid_tram_dest
# else:
# cod_unid_tram = tramitacao.cod_unid_tram_local
# for unidade_tramitacao in
# context.zsql
# .unidade_tramitacao_obter_zsql(
# cod_unid_tramitacao = cod_unid_tram):
# if unidade_tramitacao.cod_orgao:
# dic['localizacao_atual']=unidade_tramitacao.nom_orgao
# else:
# dic['localizacao_atual']=unidade_tramitacao.nom_comissao
# des_status=tramitacao.des_status
# txt_tramitacao=tramitacao.txt_tramitacao
dic['des_situacao'] = des_status
dic['ultima_acao'] = txt_tramitacao
dic['norma_vinculada'] = " "
# for norma_vinculada in context.zsql
# .materia_buscar_norma_juridica_zsql(cod_materia=materia.cod_materia):
# dic['norma_vinculada']=
# norma_vinculada.des_norma+" "
# +str(norma_vinculada.num_norma)+"/"+str(norma_vinculada.ano_norma)
materias.append(dic)
return materias
def relatorio_materia(request):
# Create the HttpResponse object with the appropriate PDF headers.
response = HttpResponse(content_type='application/pdf')
response['Content-Disposition'] = 'attachment; filename="somefilename.pdf"'
# Create the PDF object, using the response object as its "file."
# p = canvas.Canvas(response)
# Draw things on the PDF. Here's where the PDF generation happens.
# See the ReportLab documentation for the full list of functionality.
casa = CasaLegislativa.objects.first()
cabecalho = get_cabecalho(casa)
rodape = get_rodape(casa)
imagem = get_imagem(casa)
mats = MateriaLegislativa.objects.all()[:50]
materias = get_materias(mats)
pdf = pdf_materia_gerar.principal(None,
imagem,
None,
materias,
cabecalho,
rodape)
response.write(pdf)
return response
# p.drawString(100, 30, imagem)
# Close the PDF object cleanly, and we're done.
# p.showPage()
# p.save()
# filename = "advert-%s.pdf" % id
# response = HttpResponse(mimetype='application/pdf')
# response['Content-Disposition'] = 'attachment; filename=%s' % filename
# t = loader.get_template('print/pdf/advert.rml')
# c = Context({
# 'filename' : filename,
# 'advert' : advert,
# 'request' : request,
# })