From 50bdd789d758fec8fb6352b609c20991ca42c6f3 Mon Sep 17 00:00:00 2001 From: Gustavo274 <51173319+Gustavo274@users.noreply.github.com> Date: Mon, 25 Apr 2022 12:12:12 -0300 Subject: [PATCH] Campo publicar_pauta adicionado e usado em pesquisa de pautas (#3532) * Adicionado campo publicar pauta na sessao * Alterado pesquisa da pauta usando publicar_pauta * Status tramitassao pauta consertado * Data_hora_sessao adicionado com formato datetime --- .../migrations/0060_auto_20220224_1245.py | 18 +++++++++++++++++ .../0061_sessaoplenaria_publicar_pauta.py | 20 +++++++++++++++++++ .../migrations/0062_auto_20220405_1307.py | 17 ++++++++++++++++ sapl/sessao/models.py | 7 +++++++ sapl/sessao/views.py | 20 ++++++++++++++++--- sapl/templates/sessao/layouts.yaml | 6 +++--- 6 files changed, 82 insertions(+), 6 deletions(-) create mode 100644 sapl/sessao/migrations/0060_auto_20220224_1245.py create mode 100644 sapl/sessao/migrations/0061_sessaoplenaria_publicar_pauta.py create mode 100644 sapl/sessao/migrations/0062_auto_20220405_1307.py diff --git a/sapl/sessao/migrations/0060_auto_20220224_1245.py b/sapl/sessao/migrations/0060_auto_20220224_1245.py new file mode 100644 index 000000000..bc00e6ec5 --- /dev/null +++ b/sapl/sessao/migrations/0060_auto_20220224_1245.py @@ -0,0 +1,18 @@ +# Generated by Django 2.2.24 on 2022-02-24 15:45 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('sessao', '0059_sessaoplenaria_data_ultima_atualizacao'), + ] + + operations = [ + migrations.AlterField( + model_name='tiposessaoplenaria', + name='tipo_numeracao', + field=models.PositiveIntegerField(choices=[(1, 'Quinzenal'), (2, 'Mensal'), (5, 'Semestral'), (10, 'Anual'), (11, 'Sessão Legislativa'), (12, 'Legislatura'), (99, 'Numeração Única')], default=11, verbose_name='Tipo de Numeração'), + ), + ] diff --git a/sapl/sessao/migrations/0061_sessaoplenaria_publicar_pauta.py b/sapl/sessao/migrations/0061_sessaoplenaria_publicar_pauta.py new file mode 100644 index 000000000..1e8949d3b --- /dev/null +++ b/sapl/sessao/migrations/0061_sessaoplenaria_publicar_pauta.py @@ -0,0 +1,20 @@ +# Generated by Django 2.2.24 on 2022-04-05 16:07 + +from django.db import migrations, models + +from sapl.utils import YES_NO_CHOICES + + +class Migration(migrations.Migration): + + dependencies = [ + ('sessao', '0060_auto_20220224_1245'), + ] + + operations = [ + migrations.AddField( + model_name='sessaoplenaria', + name='publicar_pauta', + field=models.BooleanField(blank=True, default=False, null=True, choices=YES_NO_CHOICES, verbose_name='Publicar Pauta?'), + ), + ] diff --git a/sapl/sessao/migrations/0062_auto_20220405_1307.py b/sapl/sessao/migrations/0062_auto_20220405_1307.py new file mode 100644 index 000000000..65d4e0253 --- /dev/null +++ b/sapl/sessao/migrations/0062_auto_20220405_1307.py @@ -0,0 +1,17 @@ +# Generated by Django 2.2.24 on 2022-04-05 16:07 + +from django.db import migrations + +def publicar_pauta_true_sessoes_existentes(apps, schema_editor): + SessaoPlenaria = apps.get_model('sessao', 'SessaoPlenaria') + SessaoPlenaria.objects.filter(publicar_pauta=False).update(publicar_pauta=True) + +class Migration(migrations.Migration): + + dependencies = [ + ('sessao', '0061_sessaoplenaria_publicar_pauta'), + ] + + operations = [ + migrations.RunPython(publicar_pauta_true_sessoes_existentes), + ] diff --git a/sapl/sessao/models.py b/sapl/sessao/models.py index 536ff6cb9..6b7b2e041 100644 --- a/sapl/sessao/models.py +++ b/sapl/sessao/models.py @@ -240,6 +240,13 @@ class SessaoPlenaria(models.Model): data_ultima_atualizacao = models.DateTimeField( blank=True, null=True, auto_now=True, verbose_name=_('Data')) + publicar_pauta = models.BooleanField( + null=True, + blank=True, + default=False, + choices=YES_NO_CHOICES, + verbose_name=_('Publicar Pauta?')) + class Meta: verbose_name = _('Sessão Plenária') verbose_name_plural = _('Sessões Plenárias') diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py index 99b3b10d8..8cf16f7d4 100755 --- a/sapl/sessao/views.py +++ b/sapl/sessao/views.py @@ -1,5 +1,6 @@ from collections import OrderedDict +from datetime import datetime from re import sub import logging @@ -3698,7 +3699,7 @@ class PautaSessaoView(TemplateView): template_name = "sessao/pauta_inexistente.html" def get(self, request, *args, **kwargs): - sessao = SessaoPlenaria.objects.order_by("-data_inicio").first() + sessao = SessaoPlenaria.objects.filter(publicar_pauta = True).order_by("-data_inicio").first() if not sessao: return self.render_to_response({}) @@ -3748,7 +3749,10 @@ class PautaSessaoDetailView(DetailView): resultado = _('Matéria não votada') resultado_observacao = _(' ') - ultima_tramitacao = m.materia.tramitacao_set.order_by( + sessao_plenaria = SessaoPlenaria.objects.get(id=self.object.id) + data_sessao = sessao_plenaria.data_inicio.strftime("%Y-%m-%d ") + data_hora_sessao = datetime.strptime(data_sessao + sessao_plenaria.hora_inicio, "%Y-%m-%d %H:%M") + ultima_tramitacao = m.materia.tramitacao_set.filter(timestamp__lt = data_hora_sessao).order_by( '-data_tramitacao', '-id').first() numeracao = m.materia.numeracao_set.first() @@ -3799,7 +3803,10 @@ class PautaSessaoDetailView(DetailView): resultado = _('Matéria não votada') resultado_observacao = _(' ') - ultima_tramitacao = o.materia.tramitacao_set.order_by( + sessao_plenaria = SessaoPlenaria.objects.get(id=self.object.id) + data_sessao = sessao_plenaria.data_inicio.strftime("%Y-%m-%d ") + data_hora_sessao = datetime.strptime(data_sessao + sessao_plenaria.hora_inicio, "%Y-%m-%d %H:%M") + ultima_tramitacao = o.materia.tramitacao_set.filter(timestamp__lt = data_hora_sessao).order_by( '-data_tramitacao', '-id').first() numeracao = o.materia.numeracao_set.first() @@ -3903,6 +3910,13 @@ class PesquisarPautaSessaoView(PesquisarSessaoPlenariaView): logger = logging.getLogger(__name__) + def get_filterset_kwargs(self, filterset_class): + kwargs = super().get_filterset_kwargs(filterset_class) + qs = kwargs.get('queryset') + qs = qs.filter(publicar_pauta = True) + kwargs['queryset'] = qs + return kwargs + def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context['title'] = _('Pesquisar Pauta de Sessão') diff --git a/sapl/templates/sessao/layouts.yaml b/sapl/templates/sessao/layouts.yaml index 67abdf16d..814319878 100644 --- a/sapl/templates/sessao/layouts.yaml +++ b/sapl/templates/sessao/layouts.yaml @@ -5,15 +5,15 @@ TipoSessaoPlenaria: SessaoPlenaria: {% trans 'Dados Básicos' %}: - - legislatura sessao_legislativa tipo numero:2 + - legislatura sessao_legislativa tipo numero:1 publicar_pauta:2 - data_inicio:5 hora_inicio:5 iniciada - data_fim:5 hora_fim:5 finalizada - - upload_pauta upload_ata upload_anexo + - upload_pauta upload_ata upload_anexo - url_audio url_video SessaoSolene: {% trans 'Dados Básicos' %}: - - legislatura sessao_legislativa tipo:3 numero:1 + - legislatura sessao_legislativa tipo:3 numero:1 publicar_pauta:2 - data_inicio:5 hora_inicio:5 iniciada - data_fim:5 hora_fim:5 finalizada - tema_solene