Browse Source

feat: add field titulo

3828_refatorar_mesa_diretora
LeandroJatai 9 hours ago
parent
commit
7acb516357
  1. 38
      sapl/parlamentares/migrations/0048_auto_20260413_1049.py
  2. 12
      sapl/parlamentares/models.py
  3. 7
      sapl/parlamentares/views.py
  4. 1
      sapl/templates/crud/filter.html
  5. 5
      sapl/templates/parlamentares/layouts.yaml

38
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),
]

12
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?????

7
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

1
sapl/templates/crud/filter.html

@ -0,0 +1 @@
{% extends "crud/list.html" %}

5
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' %}:

Loading…
Cancel
Save