diff --git a/sapl/parlamentares/models.py b/sapl/parlamentares/models.py index 0ca2c8356..34b65ee4e 100644 --- a/sapl/parlamentares/models.py +++ b/sapl/parlamentares/models.py @@ -298,7 +298,7 @@ class Parlamentar(models.Model): return self.nome_parlamentar @property - def filiacao_atual(self): + def sigla_partido_filiacao_atual(self): # 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() diff --git a/sapl/parlamentares/tests/test_parlamentares.py b/sapl/parlamentares/tests/test_parlamentares.py index 4e69cd375..98fbd8b10 100644 --- a/sapl/parlamentares/tests/test_parlamentares.py +++ b/sapl/parlamentares/tests/test_parlamentares.py @@ -56,6 +56,38 @@ def test_filiacao_submit(admin_client): filiacao = Filiacao.objects.first() assert 32 == filiacao.partido.pk +#adicionar um teste curto que verifique o invariante (criar duas filiações em datas diferentes e checar parlamentar.sigla_partido_filiacao_atual). +@pytest.mark.django_db(transaction=False) +def test_sigla_partido_filiacao_atual(admin_client): + parlamentar = baker.make(Parlamentar, pk=14) + _ = baker.make(Partido, pk=32, sigla='ABC') + partido_em_ser = baker.make(Partido, pk=33, sigla='XYZ') + + # Criar a primeira filiação + admin_client.post(reverse('sapl.parlamentares:filiacao_create', + kwargs={'pk': 14}), + {'partido': 32, + 'data': '2016-03-22', + 'salvar': 'salvar'}, + follow=True) + + #alterar a filiação criada para data de desfiliação + filiacao = Filiacao.objects.first() + filiacao.data_desfiliacao = '2017-05-14' + filiacao.save() + + # Criar a segunda filiação em uma data posterior + admin_client.post(reverse('sapl.parlamentares:filiacao_create', + kwargs={'pk': 14}), + {'partido': 33, + 'data': '2017-05-15', + 'salvar': 'salvar'}, + follow=True) + + # Verificar se ao property sigla_partido_filiacao_atual retorna a sigla do partido da segunda filiação + sigla_partido_filiacao_atual = parlamentar.sigla_partido_filiacao_atual + assert sigla_partido_filiacao_atual == partido_em_ser.sigla + @pytest.mark.django_db(transaction=False) def test_dependente_submit(admin_client): @@ -314,7 +346,7 @@ def test_legislatura_form_numeros_invalidos(): data_inicio='2002-02-01', data_fim='2005-12-31', data_eleicao='2001-11-01') - + legislatura2 = baker.make(Legislatura, pk=3, numero=3, data_inicio='2008-02-01', diff --git a/sapl/parlamentares/views.py b/sapl/parlamentares/views.py index ac9ef2620..603f46b5d 100644 --- a/sapl/parlamentares/views.py +++ b/sapl/parlamentares/views.py @@ -746,7 +746,7 @@ class ParlamentarCrud(Crud): ordered_list = False list_field_names = [ 'nome_parlamentar', - 'filiacao_atual', + 'sigla_partido_filiacao_atual', 'ativo'] class DetailView(Crud.DetailView): @@ -1003,7 +1003,7 @@ def parlamentares_filiados(request, pk): parlamentares = Parlamentar.objects.all() partido = Partido.objects.get(pk=pk) parlamentares_filiados = [(parlamentar, get_data_filicao(parlamentar)) for parlamentar in parlamentares if - parlamentar.filiacao_atual == partido.sigla] + parlamentar.sigla_partido_filiacao_atual == partido.sigla] return render(request, template_name, {'partido': partido, 'parlamentares': parlamentares_filiados}) diff --git a/sapl/templates/parlamentares/mesadiretora_filter.html b/sapl/templates/parlamentares/mesadiretora_filter.html index a1ec31a73..fb8ded98b 100644 --- a/sapl/templates/parlamentares/mesadiretora_filter.html +++ b/sapl/templates/parlamentares/mesadiretora_filter.html @@ -60,7 +60,7 @@ {{composicao.parlamentar.nome_parlamentar}} -
Partido:   {{object.filiacao_atual|default_if_none:"Não informado"}}
+Partido:   {{object.sigla_partido_filiacao_atual|default_if_none:"Não informado"}}