Browse Source

Add filter params to reports (wip)

pull/202/head
Edward Ribeiro 9 years ago
parent
commit
83d274a665
  1. 1
      protocoloadm/views.py
  2. 4
      relatorios/templates/pdf_capa_processo_gerar.py
  3. 10
      relatorios/urls.py
  4. 59
      relatorios/views.py
  5. 4
      sapl/utils.py

1
protocoloadm/views.py

@ -1050,7 +1050,6 @@ class TramitacaoAdmEditView(FormMixin, GenericView):
def post(self, request, *args, **kwargs): def post(self, request, *args, **kwargs):
pk = kwargs['pk'] pk = kwargs['pk']
print(kwargs)
tramitacao = TramitacaoAdministrativo.objects.get(id=pk) tramitacao = TramitacaoAdministrativo.objects.get(id=pk)
form = TramitacaoAdmForm(request.POST, instance=tramitacao) form = TramitacaoAdmForm(request.POST, instance=tramitacao)

4
relatorios/templates/pdf_capa_processo_gerar.py

@ -8,6 +8,8 @@
""" """
import time import time
from sapl.utils import xstr
from trml2pdf import parseString from trml2pdf import parseString
@ -60,7 +62,7 @@ def protocolos(lst_protocolos):
tmp_data += '\t\t\t<font color="white"> </font>\n' tmp_data += '\t\t\t<font color="white"> </font>\n'
tmp_data += '\t\t</para>\n' tmp_data += '\t\t</para>\n'
tmp_data += '\t\t<para style="P3"><b>Ementa:</b> <font size="8">' + \ tmp_data += '\t\t<para style="P3"><b>Ementa:</b> <font size="8">' + \
dic['txt_assunto'] + '</font></para>\n' xstr(dic['txt_assunto']) + '</font></para>\n'
tmp_data += '\t</story>\n' tmp_data += '\t</story>\n'
return tmp_data return tmp_data

10
relatorios/urls.py

@ -1,15 +1,15 @@
from django.conf.urls import url from django.conf.urls import url
from .views import (relatorio_documento_administrativo, relatorio_espelho, from .views import (relatorio_capa_processo,
relatorio_documento_administrativo, relatorio_espelho,
relatorio_etiqueta_protocolo, relatorio_materia, relatorio_etiqueta_protocolo, relatorio_materia,
relatorio_ordem_dia, relatorio_pauta_sessao, relatorio_ordem_dia, relatorio_pauta_sessao,
relatorio_processo, relatorio_protocolo, relatorio_protocolo, 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'),
url(r'^relatorios/cap_processo$', url(r'^relatorios/capa_processo$',
relatorio_processo, name='relatorio_cap_processo'), relatorio_capa_processo, name='relatorio_capa_processo'),
url(r'^relatorios/ordem_dia$', relatorio_ordem_dia, url(r'^relatorios/ordem_dia$', relatorio_ordem_dia,
name='relatorio_ordem_dia'), name='relatorio_ordem_dia'),
url(r'^relatorios/relatorio_documento_administrativo$', url(r'^relatorios/relatorio_documento_administrativo$',

59
relatorios/views.py

@ -20,8 +20,20 @@ from sessao.models import (ExpedienteMateria, ExpedienteSessao, Orador,
from .templates import (pdf_capa_processo_gerar, from .templates import (pdf_capa_processo_gerar,
pdf_documento_administrativo_gerar, pdf_espelho_gerar, pdf_documento_administrativo_gerar, pdf_espelho_gerar,
pdf_etiqueta_protocolo_gerar, pdf_materia_gerar, pdf_etiqueta_protocolo_gerar, pdf_materia_gerar,
pdf_pauta_sessao_gerar, pdf_protocolo_gerar, pdf_ordem_dia_gerar, pdf_pauta_sessao_gerar,
pdf_sessao_plenaria_gerar) pdf_protocolo_gerar, pdf_sessao_plenaria_gerar)
def get_kwargs_params(request, fields):
kwargs = {}
for i in fields:
if '__icontains' in i:
x = i[:-11] # remove '__icontains'
else:
x = i
if x in request.GET:
kwargs[i] = request.GET[x]
return kwargs
def get_cabecalho(casa): def get_cabecalho(casa):
@ -155,8 +167,15 @@ def relatorio_materia(request):
rodape = get_rodape(casa) rodape = get_rodape(casa)
imagem = get_imagem(casa) imagem = get_imagem(casa)
# TODO pesquisar baseado em filtros kwargs = get_kwargs_params(request, ['numero',
mats = MateriaLegislativa.objects.all()[:50] 'ano',
'autor',
'tipo_autor',
'relator',
'interessado__icontains'
])
mats = MateriaLegislativa.objects.filter(**kwargs)
materias = get_materias(mats) materias = get_materias(mats)
@ -237,7 +256,7 @@ def get_capa_processo(prot):
return protocolos return protocolos
def relatorio_processo(request): def relatorio_capa_processo(request):
''' '''
pdf_capa_processo_gerar.py pdf_capa_processo_gerar.py
''' '''
@ -253,9 +272,15 @@ def relatorio_processo(request):
rodape = get_rodape(casa) rodape = get_rodape(casa)
imagem = get_imagem(casa) imagem = get_imagem(casa)
protocolos = Protocolo.objects.all()[:50] kwargs = get_kwargs_params(request, ['numero',
'ano',
'tipo_protocolo',
'tipo_processo',
'assunto__icontains',
# 'interessado__icontains'
])
protocolos = Protocolo.objects.filter(**kwargs)
protocolos_pdf = get_capa_processo(protocolos) protocolos_pdf = get_capa_processo(protocolos)
pdf = pdf_capa_processo_gerar.principal(None, pdf = pdf_capa_processo_gerar.principal(None,
imagem, imagem,
None, None,
@ -269,6 +294,8 @@ def relatorio_processo(request):
def get_ordem_dia(ordem, sessao): def get_ordem_dia(ordem, sessao):
# TODO: fazer implementação de ordem dia
pass pass
@ -289,16 +316,19 @@ def relatorio_ordem_dia(request):
rodape = get_rodape(casa) rodape = get_rodape(casa)
imagem = get_imagem(casa) imagem = get_imagem(casa)
ordem = OrdemDia.objects.all()[:50] kwargs = get_kwargs_params(request, ['numero_ordem'])
ordem = OrdemDia.objects.filter(**kwargs)
sessao = SessaoPlenaria.objects.first() sessao = SessaoPlenaria.objects.first()
ordem_pdf = get_ordem_dia(ordem, sessao) ordem_pdf = get_ordem_dia(ordem, sessao)
pdf = pdf_capa_processo_gerar.principal(None, pdf = pdf_ordem_dia_gerar.principal(None,
imagem, imagem,
None, None,
ordem_pdf, ordem_pdf,
cabecalho, cabecalho,
rodape) rodape)
response.write(pdf) response.write(pdf)
@ -954,6 +984,7 @@ def relatorio_pauta_sessao(request):
imagem = get_imagem(casa) imagem = get_imagem(casa)
sessao = SessaoPlenaria.objects.first() sessao = SessaoPlenaria.objects.first()
lst_expediente_materia, lst_votacao, inf_basicas_dic = get_pauta_sessao( lst_expediente_materia, lst_votacao, inf_basicas_dic = get_pauta_sessao(
sessao, casa) sessao, casa)
pdf = pdf_pauta_sessao_gerar.principal(cabecalho, pdf = pdf_pauta_sessao_gerar.principal(cabecalho,

4
sapl/utils.py

@ -28,6 +28,10 @@ def register_all_models_in_admin(module_name):
admin.site.register(model, CustomModelAdmin) admin.site.register(model, CustomModelAdmin)
def xstr(s):
return '' if s is None else str(s)
def make_choices(*choice_pairs): def make_choices(*choice_pairs):
assert len(choice_pairs) % 2 == 0 assert len(choice_pairs) % 2 == 0
ipairs = iter(choice_pairs) ipairs = iter(choice_pairs)

Loading…
Cancel
Save