diff --git a/sapl/parlamentares/models.py b/sapl/parlamentares/models.py index 260757768..74351957e 100644 --- a/sapl/parlamentares/models.py +++ b/sapl/parlamentares/models.py @@ -298,7 +298,9 @@ class Parlamentar(models.Model): @property def filiacao_atual(self): - ultima_filiacao = self.filiacao_set.order_by('-data').first() + # este método conta com a ordenação default do model Filiacao para trazer a última filiação primeiro + # se order_by for adicionado aqui, o prefetch_related que inclui filiacao_set não irá pré-carregar como esperado + ultima_filiacao = self.filiacao_set.first() if ultima_filiacao and not ultima_filiacao.data_desfiliacao: return ultima_filiacao.partido.sigla else: diff --git a/sapl/parlamentares/views.py b/sapl/parlamentares/views.py index 4fac0701a..e98c811b3 100644 --- a/sapl/parlamentares/views.py +++ b/sapl/parlamentares/views.py @@ -1032,6 +1032,12 @@ class MesaDiretoraCrud(Crud): fk['data'] = {'legislatura': legislatura} return fk + def get_queryset(self): + return super().get_queryset().prefetch_related( + 'composicaomesa_set__parlamentar__filiacao_set__partido', + 'composicaomesa_set__cargo' + ) + def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context['subnav_template_name'] = '' diff --git a/sapl/templates/parlamentares/mesadiretora_filter.html b/sapl/templates/parlamentares/mesadiretora_filter.html index a07c5262f..ecbcfcb81 100644 --- a/sapl/templates/parlamentares/mesadiretora_filter.html +++ b/sapl/templates/parlamentares/mesadiretora_filter.html @@ -45,19 +45,19 @@ - {% for p in md.composicaomesa_set.all %} + {% for composicao in md.composicaomesa_set.all %}
- {% if p.parlamentar.fotografia %} - + {% if composicao.parlamentar.fotografia %} + {% endif %} - - {{p.parlamentar.nome_parlamentar}} + + {{composicao.parlamentar.nome_parlamentar}}
- {{p.parlamentar.filiacao_atual}} - {{p.cargo}} + {{composicao.parlamentar.filiacao_atual}} + {{composicao.cargo}} {% endfor %}