diff --git a/sapl/base/forms.py b/sapl/base/forms.py index 7c6ed0e6d..8e5a345c0 100644 --- a/sapl/base/forms.py +++ b/sapl/base/forms.py @@ -1129,6 +1129,8 @@ class RelatorioDataFimPrazoTramitacaoFilterSet(django_filters.FilterSet): class RelatorioReuniaoFilterSet(django_filters.FilterSet): + o = AnoNumeroOrderingFilter(help_text='') + @property def qs(self): parent = super(RelatorioReuniaoFilterSet, self).qs @@ -1149,12 +1151,27 @@ class RelatorioReuniaoFilterSet(django_filters.FilterSet): ('nome', 4), ('tema', 4)]) + 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(_('Reunião de Comissão'), row1, row2, - form_actions(label='Pesquisar')) + buttons, ) ) diff --git a/sapl/base/views.py b/sapl/base/views.py index ec9cb7815..dbde3a2b1 100644 --- a/sapl/base/views.py +++ b/sapl/base/views.py @@ -33,7 +33,8 @@ 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_historico_tramitacao_adm) + relatorio_normas_vigencia, relatorio_historico_tramitacao_adm, + relatorio_reuniao) from sapl import settings from sapl.audiencia.models import AudienciaPublica, TipoAudienciaPublica @@ -813,6 +814,40 @@ class RelatorioReuniaoView(FilterView): return context + def get(self, request, *args, **kwargs): + super(RelatorioReuniaoView, 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_reuniao(request, context) + else: + return self.render_to_response(context) + class RelatorioAudienciaView(FilterView): model = AudienciaPublica filterset_class = RelatorioAudienciaFilterSet diff --git a/sapl/relatorios/views.py b/sapl/relatorios/views.py index 6406af3ea..ffd07d3d1 100755 --- a/sapl/relatorios/views.py +++ b/sapl/relatorios/views.py @@ -1526,7 +1526,9 @@ def relatorio_fim_prazo_tramitacao(request, context): return response -def relatorio_audiencia(request, context): + + +def relatorio_reuniao(request, context): base_url = request.build_absolute_uri() casa = CasaLegislativa.objects.first() rodape = ' '.join(get_rodape(casa)) @@ -1536,7 +1538,7 @@ def relatorio_audiencia(request, context): header_context = {"casa": casa, 'logotipo': casa.logotipo, 'MEDIA_URL': MEDIA_URL} - html_template = render_to_string('relatorios/relatorio_audiencia.html', context) + html_template = render_to_string('relatorios/relatorio_reuniao.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) @@ -1549,7 +1551,8 @@ def relatorio_audiencia(request, context): return response -def relatorio_normas_mes(request, context): + +def relatorio_audiencia(request, context): base_url = request.build_absolute_uri() casa = CasaLegislativa.objects.first() rodape = ' '.join(get_rodape(casa)) @@ -1559,7 +1562,7 @@ def relatorio_normas_mes(request, context): header_context = {"casa": casa, 'logotipo': casa.logotipo, 'MEDIA_URL': MEDIA_URL} - html_template = render_to_string('relatorios/relatorio_normas_mes.html', context) + html_template = render_to_string('relatorios/relatorio_audiencia.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) @@ -1571,6 +1574,7 @@ def relatorio_normas_mes(request, context): return response + def relatorio_normas_mes(request, context): base_url = request.build_absolute_uri() casa = CasaLegislativa.objects.first() @@ -1594,7 +1598,6 @@ def relatorio_normas_mes(request, context): return response - def relatorio_normas_vigencia(request, context): base_url = request.build_absolute_uri() casa = CasaLegislativa.objects.first() diff --git a/sapl/templates/relatorios/relatorio_reuniao.html b/sapl/templates/relatorios/relatorio_reuniao.html new file mode 100644 index 000000000..ac84a5cdb --- /dev/null +++ b/sapl/templates/relatorios/relatorio_reuniao.html @@ -0,0 +1,70 @@ +{% load i18n %} +{% load common_tags %} +{% load static %} + + + + + + + + +

Reunião de Comissão

+ + {% if object_list|length > 0 %} + + + + + + + + + {% for reuniao in object_list %} + + + + + {% endfor %} + +
ComissaoNome
+ {{reuniao.comissao}} + {{reuniao.nome}}
+ {% else %} +

Nenhum reunião foi encontrada!

+ {% endif %} + \ No newline at end of file