Browse Source

feat: adiciona funcionalidade de impressao a lista de tramitacao de materias

impressao-materia-tramitacao
joao 2 years ago
parent
commit
98d33572fd
  1. 6
      sapl/relatorios/urls.py
  2. 39
      sapl/relatorios/views.py
  3. 14
      sapl/templates/materia/tramitacao_list.html

6
sapl/relatorios/urls.py

@ -6,7 +6,8 @@ from .views import (relatorio_capa_processo,
relatorio_etiqueta_protocolo, relatorio_materia, relatorio_etiqueta_protocolo, relatorio_materia,
relatorio_ordem_dia, relatorio_pauta_sessao, relatorio_ordem_dia, relatorio_pauta_sessao,
relatorio_protocolo, relatorio_sessao_plenaria, relatorio_protocolo, relatorio_sessao_plenaria,
resumo_ata_pdf, relatorio_sessao_plenaria_pdf, etiqueta_materia_legislativa) resumo_ata_pdf, relatorio_sessao_plenaria_pdf, etiqueta_materia_legislativa,
relatorio_materia_tramitacao)
app_name = AppConfig.name app_name = AppConfig.name
@ -41,4 +42,7 @@ urlpatterns = [
relatorio_sessao_plenaria_pdf, name='relatorio_sessao_plenaria_pdf'), relatorio_sessao_plenaria_pdf, name='relatorio_sessao_plenaria_pdf'),
url(r'^relatorios/(?P<pk>\d+)/etiqueta-materia-legislativa$', url(r'^relatorios/(?P<pk>\d+)/etiqueta-materia-legislativa$',
etiqueta_materia_legislativa, name='etiqueta_materia_legislativa'), etiqueta_materia_legislativa, name='etiqueta_materia_legislativa'),
url(r'^relatorios/(?P<pk>\d+)/materia-tramitacao$',
relatorio_materia_tramitacao, name='relatorio_materia_tramitacao'),
] ]

39
sapl/relatorios/views.py

@ -533,8 +533,8 @@ def get_sessao_plenaria(sessao, casa, user):
# Lista da composicao da mesa diretora # Lista da composicao da mesa diretora
lst_mesa = [] lst_mesa = []
for composicao in IntegranteMesa.objects.select_related('parlamentar', 'cargo')\ for composicao in IntegranteMesa.objects.select_related('parlamentar', 'cargo') \
.filter(sessao_plenaria=sessao)\ .filter(sessao_plenaria=sessao) \
.order_by('cargo_id'): .order_by('cargo_id'):
partido_sigla = Filiacao.objects.filter( partido_sigla = Filiacao.objects.filter(
parlamentar=composicao.parlamentar).first() parlamentar=composicao.parlamentar).first()
@ -691,7 +691,7 @@ def get_sessao_plenaria(sessao, casa, user):
# Lista dos votos nominais das matérias do Expediente # Lista dos votos nominais das matérias do Expediente
lst_expediente_materia_vot_nom = [] lst_expediente_materia_vot_nom = []
materias_expediente_votacao_nominal = ExpedienteMateria.objects.filter(sessao_plenaria=sessao, tipo_votacao=2)\ materias_expediente_votacao_nominal = ExpedienteMateria.objects.filter(sessao_plenaria=sessao, tipo_votacao=2) \
.order_by('-materia') .order_by('-materia')
for mevn in materias_expediente_votacao_nominal: for mevn in materias_expediente_votacao_nominal:
@ -724,7 +724,7 @@ def get_sessao_plenaria(sessao, casa, user):
# Lista presença na ordem do dia # Lista presença na ordem do dia
lst_presenca_ordem_dia = [] lst_presenca_ordem_dia = []
presenca_ordem_dia = PresencaOrdemDia.objects.filter(sessao_plenaria=sessao)\ presenca_ordem_dia = PresencaOrdemDia.objects.filter(sessao_plenaria=sessao) \
.order_by('parlamentar__nome_parlamentar') .order_by('parlamentar__nome_parlamentar')
for parlamentar in [p.parlamentar for p in presenca_ordem_dia]: for parlamentar in [p.parlamentar for p in presenca_ordem_dia]:
lst_presenca_ordem_dia.append({ lst_presenca_ordem_dia.append({
@ -804,7 +804,7 @@ def get_sessao_plenaria(sessao, casa, user):
# Lista dos votos nominais das matérias da Ordem do Dia # Lista dos votos nominais das matérias da Ordem do Dia
lst_votacao_vot_nom = [] lst_votacao_vot_nom = []
materias_ordem_dia_votacao_nominal = OrdemDia.objects.filter(sessao_plenaria=sessao, tipo_votacao=2)\ materias_ordem_dia_votacao_nominal = OrdemDia.objects.filter(sessao_plenaria=sessao, tipo_votacao=2) \
.order_by('-materia') .order_by('-materia')
for modvn in materias_ordem_dia_votacao_nominal: for modvn in materias_ordem_dia_votacao_nominal:
@ -1696,3 +1696,32 @@ def etiqueta_materia_legislativa(request, pk):
response.write(pdf_file) response.write(pdf_file)
return response return response
def relatorio_materia_tramitacao(request, pk):
base_url = request.build_absolute_uri()
materia_legislativa = MateriaLegislativa.objects.get(pk=pk)
tramitacoes = Tramitacao.objects.filter(materia=materia_legislativa)
casa = CasaLegislativa.objects.first()
rodape = ' '.join(get_rodape(casa))
context = {}
context.update({'object': materia_legislativa})
context.update({'data': dt.today().strftime('%d/%m/%Y')})
context.update({'rodape': rodape})
header_context = {"casa": casa,
'logotipo': casa.logotipo, 'MEDIA_URL': MEDIA_URL}
html_template = render_to_string('crud/list.html', context)
html_header = render_to_string(
'relatorios/header_ata.html', header_context)
pdf_file = make_pdf(
base_url=base_url, main_template=html_template, header_template=html_header)
response = HttpResponse(content_type='application/pdf;')
response['Content-Disposition'] = 'inline; filename=relatorio.pdf'
response['Content-Transfer-Encoding'] = 'binary'
response.write(pdf_file)
return response

14
sapl/templates/materia/tramitacao_list.html

@ -0,0 +1,14 @@
{% extends "crud/list.html" %}
{% load i18n %}
{% load common_tags %}
{% block more_buttons %}
{% if perms|get_add_perm:view %}
<a href="{% url 'sapl.relatorios:relatorio_materia_tramitacao' root_pk %}" class="btn btn-outline-primary">
{% trans "Imprimir" %}
</a>
{% endif %}
{% endblock more_buttons %}
Loading…
Cancel
Save