From 630766cadcb23d59568830af179ec3cd74c9c9ae Mon Sep 17 00:00:00 2001 From: ricardocanela Date: Wed, 28 Aug 2019 10:23:03 -0300 Subject: [PATCH] fix rebase --- sapl/base/forms.py | 19 ++++- sapl/base/views.py | 39 ++++++++- sapl/relatorios/views.py | 24 ++++++ .../relatorio_historico_tramitacao_adm.html | 81 +++++++++++++++++++ .../relatorios/relatorio_normas_vigencia.html | 2 +- 5 files changed, 160 insertions(+), 5 deletions(-) create mode 100644 sapl/templates/relatorios/relatorio_historico_tramitacao_adm.html diff --git a/sapl/base/forms.py b/sapl/base/forms.py index c871f39f8..7c6ed0e6d 100644 --- a/sapl/base/forms.py +++ b/sapl/base/forms.py @@ -1664,6 +1664,8 @@ class PartidoForm(FileFieldCheckMixin, ModelForm): class RelatorioHistoricoTramitacaoAdmFilterSet(django_filters.FilterSet): + o = AnoNumeroOrderingFilter(help_text='') + @property def qs(self): parent = super(RelatorioHistoricoTramitacaoAdmFilterSet, self).qs @@ -1694,12 +1696,27 @@ class RelatorioHistoricoTramitacaoAdmFilterSet(django_filters.FilterSet): [('tipo', 6), ('tramitacaoadministrativo__status', 6)]) + buttons = FormActions( + *[ + HTML(''' +
+ + +
+ ''') + ], + Submit('pesquisar', _('Pesquisar'), css_class='float-right', + onclick='return true;'), + css_class='form-group row justify-content-between' + , + ) + self.form.helper = SaplFormHelper() self.form.helper.form_method = 'GET' self.form.helper.layout = Layout( Fieldset(_(''), row1, row2, row3, - form_actions(label='Pesquisar')) + buttons, ) ) diff --git a/sapl/base/views.py b/sapl/base/views.py index 723fc9075..ec9cb7815 100644 --- a/sapl/base/views.py +++ b/sapl/base/views.py @@ -33,7 +33,7 @@ from sapl.relatorios.views import (relatorio_materia_em_tramitacao, relatorio_ma relatorio_materia_por_ano_autor, relatorio_presenca_sessao, relatorio_historico_tramitacao, relatorio_fim_prazo_tramitacao, relatorio_atas, relatorio_audiencia, relatorio_normas_mes, - relatorio_normas_vigencia) + relatorio_normas_vigencia, relatorio_historico_tramitacao_adm) from sapl import settings from sapl.audiencia.models import AudienciaPublica, TipoAudienciaPublica @@ -2432,7 +2432,6 @@ class RelatorioHistoricoTramitacaoAdmView(FilterView): return context - class RelatorioNormasPorAutorView(FilterView): model = NormaJuridica filterset_class = RelatorioNormasPorAutorFilterSet @@ -2478,4 +2477,38 @@ class RelatorioNormasPorAutorView(FilterView): self.request.GET['data_0'] + ' - ' + self.request.GET['data_1']) - return context \ No newline at end of file + return context + + def get(self, request, *args, **kwargs): + super(RelatorioNormasPorAutorView, self).get(request) + # Se a pesquisa estiver quebrando com a paginação + # Olhe esta função abaixo + # Provavelmente você criou um novo campo no Form/FilterSet + # Então a ordem da URL está diferente + data = self.filterset.data + if data and data.get('tipo') is not None: + url = "&" + str(self.request.environ['QUERY_STRING']) + if url.startswith("&page"): + ponto_comeco = url.find('tipo=') - 1 + url = url[ponto_comeco:] + else: + url = '' + self.filterset.form.fields['o'].label = _('Ordenação') + # é usada essa verificação anônima para quando os documentos administrativos + # estão no modo ostensivo, mas podem existir documentos administrativos + # restritos + length = self.object_list.count() + + is_relatorio = request.GET.get('relatorio', None) + self.paginate_by = None if is_relatorio else self.paginate_by + context = self.get_context_data(filter=self.filterset, + filter_url=url, + numero_res=length + ) + context['show_results'] = show_results_filter_set( + self.request.GET.copy()) + + if is_relatorio: + return relatorio_historico_tramitacao_adm(request, context) + else: + return self.render_to_response(context) diff --git a/sapl/relatorios/views.py b/sapl/relatorios/views.py index 469a9b759..6406af3ea 100755 --- a/sapl/relatorios/views.py +++ b/sapl/relatorios/views.py @@ -1618,6 +1618,30 @@ def relatorio_normas_vigencia(request, context): return response + +def relatorio_historico_tramitacao_adm(request, context): + base_url = request.build_absolute_uri() + casa = CasaLegislativa.objects.first() + rodape = ' '.join(get_rodape(casa)) + + 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('relatorios/relatorio_historico_tramitacao_adm.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 + + def relatorio_sessao_plenaria_pdf(request, pk): base_url=request.build_absolute_uri() logger = logging.getLogger(__name__) diff --git a/sapl/templates/relatorios/relatorio_historico_tramitacao_adm.html b/sapl/templates/relatorios/relatorio_historico_tramitacao_adm.html new file mode 100644 index 000000000..13ead56a4 --- /dev/null +++ b/sapl/templates/relatorios/relatorio_historico_tramitacao_adm.html @@ -0,0 +1,81 @@ +{% load i18n %} +{% load common_tags %} +{% load static %} + + + + + + + + +

Histórico de Tramitações de Documento Administrativo

+ + PARÂMETROS DE PESQUISA:
+  Período: {{ data_tramitacao }}
+  Tipo de documento: {{ tipo }}
+  Status atual: {{ tramitacaoadministrativo__status }}
+  Local de origem: {{ tramitacaoadministrativo__unidade_tramitacao_local }}
+  Local de destino: {{ tramitacaoadministrativo__unidade_tramitacao_destino }}


+ {% if object_list %} + {% if object_list|length == 1 %} +

Foi encontrado 1 documento com esses parâmetros.



+ {% else %} +

Foram encontrados {{object_list|length}} documentos com esses parâmetros.



+ {% endif %} + + + + + + + + + {% for documento in object_list %} + + + + + {% endfor %} + +
DocumentoEmenta
+ {{documento.tipo.descricao}} - {{documento.tipo.sigla}} {{documento.numero}}/{{documento.ano}} + {{documento.ementa}}
{{documento.observacao}}
+ {% else %} +

Nenhum documento encontrado com esses parâmetros.



+ {% endif %} + \ No newline at end of file diff --git a/sapl/templates/relatorios/relatorio_normas_vigencia.html b/sapl/templates/relatorios/relatorio_normas_vigencia.html index bb47d8fc1..2f6d9d1ab 100644 --- a/sapl/templates/relatorios/relatorio_normas_vigencia.html +++ b/sapl/templates/relatorios/relatorio_normas_vigencia.html @@ -43,7 +43,7 @@ -

Fim de Prazo de Tramitações

+

Normas por vigência

PARÂMETROS DE PESQUISA:
 Ano: {{ ano }}