From 7acb5163570ce99424e40ad12032bc5ef0b198ee Mon Sep 17 00:00:00 2001 From: LeandroJatai Date: Mon, 13 Apr 2026 11:14:29 -0300 Subject: [PATCH] feat: add field titulo --- .../migrations/0048_auto_20260413_1049.py | 38 +++++++++++++++++++ sapl/parlamentares/models.py | 12 +++--- sapl/parlamentares/views.py | 7 ++++ sapl/templates/crud/filter.html | 1 + sapl/templates/parlamentares/layouts.yaml | 5 ++- 5 files changed, 57 insertions(+), 6 deletions(-) create mode 100644 sapl/parlamentares/migrations/0048_auto_20260413_1049.py create mode 100644 sapl/templates/crud/filter.html diff --git a/sapl/parlamentares/migrations/0048_auto_20260413_1049.py b/sapl/parlamentares/migrations/0048_auto_20260413_1049.py new file mode 100644 index 000000000..c24c49b17 --- /dev/null +++ b/sapl/parlamentares/migrations/0048_auto_20260413_1049.py @@ -0,0 +1,38 @@ +# Generated by Django 2.2.28 on 2026-04-13 13:49 + +from django.db import migrations, models +import django.db.models.deletion + +def preencher_titulo_mesa_diretora(apps, schema_editor): + MesaDiretora = apps.get_model('parlamentares', 'MesaDiretora') + for mesa in MesaDiretora.objects.all(): + ano_inicio = mesa.data_inicio.year if mesa.data_inicio else None + ano_fim = mesa.data_fim.year if mesa.data_fim else None + if ano_inicio and ano_fim: + mesa.titulo = f'Mesa Diretora{" Biênio" if ano_fim - ano_inicio == 1 else ""} {ano_inicio}/{ano_fim}' + mesa.save() + + +class Migration(migrations.Migration): + + dependencies = [ + ('parlamentares', '0047_auto_20260412_2256'), + ] + + operations = [ + migrations.AlterModelOptions( + name='mesadiretora', + options={'ordering': ('-data_inicio', '-legislatura'), 'verbose_name': 'Mesa Diretora', 'verbose_name_plural': 'Mesas Diretoras'}, + ), + migrations.AddField( + model_name='mesadiretora', + name='titulo', + field=models.CharField(default='', max_length=50, verbose_name='Título da Mesa Diretora'), + ), + migrations.AlterField( + model_name='composicaomesa', + name='mesa_diretora', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='composicaomesa_set', to='parlamentares.MesaDiretora'), + ), + migrations.RunPython(preencher_titulo_mesa_diretora), + ] diff --git a/sapl/parlamentares/models.py b/sapl/parlamentares/models.py index 62c88e111..870fe9347 100644 --- a/sapl/parlamentares/models.py +++ b/sapl/parlamentares/models.py @@ -491,6 +491,7 @@ class CargoMesa(models.Model): class MesaDiretora(models.Model): + titulo = models.CharField(max_length=50, default='', verbose_name=_('Título da Mesa Diretora')) data_inicio = models.DateField(verbose_name=_('Data Início'), null=True) data_fim = models.DateField(verbose_name=_('Data Fim'), null=True) legislatura = models.ForeignKey(Legislatura, @@ -504,11 +505,12 @@ class MesaDiretora(models.Model): ordering = ('-data_inicio', '-legislatura') def __str__(self): - return _('%(legislatura)s - %(data_inicio)s a %(data_fim)s') % { - 'legislatura': self.legislatura, - 'data_inicio': self.data_inicio, - 'data_fim': self.data_fim - } + return self.titulo or _('%(legislatura)s - %(data_inicio)s a %(data_fim)s') % { + 'legislatura': self.legislatura, + 'data_inicio': self.data_inicio, + 'data_fim': self.data_fim + } + class ComposicaoMesa(models.Model): # TODO M2M ???? Ternary????? diff --git a/sapl/parlamentares/views.py b/sapl/parlamentares/views.py index 1a2eeabf7..2b11dd9bf 100644 --- a/sapl/parlamentares/views.py +++ b/sapl/parlamentares/views.py @@ -1021,6 +1021,7 @@ class MesaDiretoraCrud(Crud): class ListView(FilterView, Crud.ListView): filterset_class = MesaDiretoraFilterSet + paginate_by = None def get_filterset_kwargs(self, filterset_class): fk = super().get_filterset_kwargs(filterset_class) @@ -1046,6 +1047,12 @@ class MesaDiretoraCrud(Crud): context['subnav_template_name'] = '' return context + class DetailView(Crud.DetailView): + layout_key = 'MesaDiretoraDetail' + def get_context_data(self, **kwargs): + context = super().get_context_data(**kwargs) + return context + class ComposicaoMesaCrud(MasterDetailCrud): model = ComposicaoMesa diff --git a/sapl/templates/crud/filter.html b/sapl/templates/crud/filter.html new file mode 100644 index 000000000..ddfadab08 --- /dev/null +++ b/sapl/templates/crud/filter.html @@ -0,0 +1 @@ +{% extends "crud/list.html" %} \ No newline at end of file diff --git a/sapl/templates/parlamentares/layouts.yaml b/sapl/templates/parlamentares/layouts.yaml index 3cb32ac9b..6ff9b6351 100644 --- a/sapl/templates/parlamentares/layouts.yaml +++ b/sapl/templates/parlamentares/layouts.yaml @@ -169,14 +169,17 @@ BlocoMembroList: MesaDiretora: {% trans 'Período e Legislatura' %}: + - titulo - data_inicio data_fim legislatura:6 + {% trans 'Descrição' %}: - descricao MesaDiretoraDetail: {% trans 'Período e Legislatura' %}: + - titulo - data_inicio data_fim legislatura:6 + {% trans 'Descrição' %}: - descricao - - composicaomesa_set ComposicaoMesa: {% trans 'Composição da Mesa' %}: