diff --git a/sapl/relatorios/views.py b/sapl/relatorios/views.py index 68b18914e..16c4f23d6 100755 --- a/sapl/relatorios/views.py +++ b/sapl/relatorios/views.py @@ -1344,7 +1344,7 @@ def resumo_ata_pdf(request,pk): return response -def cria_relatorio(request, context, html_string): +def cria_relatorio(request, context, html_string, header_info=""): base_url = request.build_absolute_uri() casa = CasaLegislativa.objects.first() rodape = ' '.join(get_rodape(casa)) @@ -1352,7 +1352,7 @@ def cria_relatorio(request, context, html_string): context.update({'data': dt.today().strftime('%d/%m/%Y')}) context.update({'rodape': rodape}) - header_context = {"casa": casa, 'logotipo': casa.logotipo, 'MEDIA_URL': MEDIA_URL} + header_context = {"casa": casa, 'logotipo': casa.logotipo, 'MEDIA_URL': MEDIA_URL, 'info': header_info} html_template = render_to_string(html_string, context) html_header = render_to_string('relatorios/header_ata.html', header_context) @@ -1414,6 +1414,12 @@ def relatorio_documento_acessorio(obj, request, context): def relatorio_normas_por_autor(obj, request, context): return cria_relatorio(request, context, 'relatorios/relatorio_normas_por_autor.html') +def relatorio_pauta_sessao_weasy(obj, request, context): + sessao = context['object'] + info = "Pauta da {} ({} - {}) Legislatura".format(sessao,sessao.legislatura.data_inicio.year,sessao.legislatura.data_fim.year) + return cria_relatorio(request, context, 'relatorios/relatorio_pauta_sessao.html',info) + + def relatorio_sessao_plenaria_pdf(request, pk): base_url=request.build_absolute_uri() logger = logging.getLogger(__name__) diff --git a/sapl/sessao/urls.py b/sapl/sessao/urls.py index 730469c29..c14bc6915 100644 --- a/sapl/sessao/urls.py +++ b/sapl/sessao/urls.py @@ -117,7 +117,7 @@ urlpatterns = [ PautaSessaoView.as_view(), name='pauta_sessao'), url(r'^sessao/pauta-sessao/pesquisar-pauta$', PesquisarPautaSessaoView.as_view(), name='pesquisar_pauta'), - url(r'^sessao/pauta-sessao/(?P\d+)$', + url(r'^sessao/pauta-sessao/(?P\d+)/(?:pdf)?$', PautaSessaoDetailView.as_view(), name='pauta_sessao_detail'), # Subnav sessão diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py index 96fa5dfc5..18ef96341 100755 --- a/sapl/sessao/views.py +++ b/sapl/sessao/views.py @@ -3230,6 +3230,8 @@ class PautaSessaoDetailView(DetailView): model = SessaoPlenaria def get(self, request, *args, **kwargs): + from sapl.relatorios.views import relatorio_pauta_sessao_weasy # Evitar import ciclico + self.object = self.get_object() context = self.get_context_data(object=self.object) @@ -3352,7 +3354,12 @@ class PautaSessaoDetailView(DetailView): context.update({'materias_ordem': materias_ordem}) context.update({'subnav_template_name': 'sessao/pauta_subnav.yaml'}) - return self.render_to_response(context) + is_pdf = True if request.build_absolute_uri().split('/')[-1] == 'pdf' else False + + if is_pdf: + return relatorio_pauta_sessao_weasy(self,request,context) + else: + return self.render_to_response(context) class PesquisarSessaoPlenariaView(FilterView): diff --git a/sapl/templates/relatorios/base_relatorio.html b/sapl/templates/relatorios/base_relatorio.html new file mode 100644 index 000000000..a824e3514 --- /dev/null +++ b/sapl/templates/relatorios/base_relatorio.html @@ -0,0 +1,47 @@ +{% load i18n %} +{% load crispy_forms_tags %} +{% load common_tags %} +{% load static %} + + + + + + + + + + {% block content %} + + {% endblock content %} + + \ No newline at end of file diff --git a/sapl/templates/relatorios/relatorio_pauta_sessao.html b/sapl/templates/relatorios/relatorio_pauta_sessao.html new file mode 100644 index 000000000..3ae0fb5c1 --- /dev/null +++ b/sapl/templates/relatorios/relatorio_pauta_sessao.html @@ -0,0 +1,71 @@ +{% extends "relatorios/base_relatorio.html" %} +{% load i18n %} +{% load crispy_forms_tags %} +{% load common_tags %} +{% load static %} + +{% block content %} +

Identificação Básica

+ {% for b in basica %} + {{b}}
+ {% endfor %} + +

Expedientes

+ {% for e in expedientes %} + {{e.tipo}}:
+

{{e.conteudo|safe}}

+ {% endfor %} + +

Matérias do Expediente

+ {% if materia_expediente %} + + + + + + + + + {% for m in materia_expediente %} + + + + + + {% endfor %} +
MatériaEmentaSituação
+ {{m.numero}} - {{m.titulo}} +
+ Autor{{ m.autor|length|pluralize:"es" }}: {{ m.autor|join:', ' }} +
{{m.ementa|safe}}
{{m.observacao|linebreaksbr|safe}}
{{m.situacao}}
+ {% else %} + Não existem Matérias de Expediente para essa Sessão Plenária + {% endif %} + +

Matérias da Ordem do Dia

+ {% if materias_ordem %} + + + + + + + + + {% for m in materias_ordem %} + + + + + + {% endfor %} +
MatériaEmentaSituação
+ {{m.numero}} - {{m.titulo}} +
+ Autor{{ m.autor|length|pluralize:"es" }}: {{ m.autor|join:', ' }} +
{{m.ementa|safe}}
{{m.observacao|linebreaksbr|safe}}
{{m.situacao}}
+ {% else %} + Não existem Matérias de Ordem do Dia para essa Sessão Plenária + {% endif %} + +{% endblock content %} \ No newline at end of file diff --git a/sapl/templates/sessao/pauta_sessao_detail.html b/sapl/templates/sessao/pauta_sessao_detail.html index 1b976a8f1..032b19bd8 100644 --- a/sapl/templates/sessao/pauta_sessao_detail.html +++ b/sapl/templates/sessao/pauta_sessao_detail.html @@ -3,7 +3,7 @@ {% load crispy_forms_tags %} {% block base_content %} -
Impressão PDF
+
Impressão PDF
Identificação Básica