Browse Source

fix: https://github.com/interlegis/sapl/pull/3829#discussion_r3182291977

3828_refatorar_mesa_diretora
LeandroJatai 3 days ago
parent
commit
3eee45797f
  1. 2
      sapl/parlamentares/models.py
  2. 34
      sapl/parlamentares/tests/test_parlamentares.py
  3. 4
      sapl/parlamentares/views.py
  4. 2
      sapl/templates/parlamentares/mesadiretora_filter.html
  5. 2
      sapl/templates/parlamentares/parlamentar_perfil_publico.html

2
sapl/parlamentares/models.py

@ -298,7 +298,7 @@ class Parlamentar(models.Model):
return self.nome_parlamentar return self.nome_parlamentar
@property @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 # 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 # 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() ultima_filiacao = self.filiacao_set.first()

34
sapl/parlamentares/tests/test_parlamentares.py

@ -56,6 +56,38 @@ def test_filiacao_submit(admin_client):
filiacao = Filiacao.objects.first() filiacao = Filiacao.objects.first()
assert 32 == filiacao.partido.pk 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) @pytest.mark.django_db(transaction=False)
def test_dependente_submit(admin_client): def test_dependente_submit(admin_client):
@ -314,7 +346,7 @@ def test_legislatura_form_numeros_invalidos():
data_inicio='2002-02-01', data_inicio='2002-02-01',
data_fim='2005-12-31', data_fim='2005-12-31',
data_eleicao='2001-11-01') data_eleicao='2001-11-01')
legislatura2 = baker.make(Legislatura, pk=3, legislatura2 = baker.make(Legislatura, pk=3,
numero=3, numero=3,
data_inicio='2008-02-01', data_inicio='2008-02-01',

4
sapl/parlamentares/views.py

@ -746,7 +746,7 @@ class ParlamentarCrud(Crud):
ordered_list = False ordered_list = False
list_field_names = [ list_field_names = [
'nome_parlamentar', 'nome_parlamentar',
'filiacao_atual', 'sigla_partido_filiacao_atual',
'ativo'] 'ativo']
class DetailView(Crud.DetailView): class DetailView(Crud.DetailView):
@ -1003,7 +1003,7 @@ def parlamentares_filiados(request, pk):
parlamentares = Parlamentar.objects.all() parlamentares = Parlamentar.objects.all()
partido = Partido.objects.get(pk=pk) partido = Partido.objects.get(pk=pk)
parlamentares_filiados = [(parlamentar, get_data_filicao(parlamentar)) for parlamentar in parlamentares if 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}) return render(request, template_name, {'partido': partido, 'parlamentares': parlamentares_filiados})

2
sapl/templates/parlamentares/mesadiretora_filter.html

@ -60,7 +60,7 @@
{{composicao.parlamentar.nome_parlamentar}}</a> {{composicao.parlamentar.nome_parlamentar}}</a>
</div> </div>
</td> </td>
<td>{{composicao.parlamentar.filiacao_atual}}</td> <td>{{composicao.parlamentar.sigla_partido_filiacao_atual}}</td>
<td>{{composicao.cargo}}</td> <td>{{composicao.cargo}}</td>
</tr> </tr>
{% endfor %} {% endfor %}

2
sapl/templates/parlamentares/parlamentar_perfil_publico.html

@ -31,7 +31,7 @@
<div class="col-sm-8"> <div class="col-sm-8">
<div id="div_data_nascimento" class="form-group"> <div id="div_data_nascimento" class="form-group">
<p><b>Partido: </b> &nbsp {{object.filiacao_atual|default_if_none:"Não informado"}}</p> <p><b>Partido: </b> &nbsp {{object.sigla_partido_filiacao_atual|default_if_none:"Não informado"}}</p>
</div> </div>
</div> </div>

Loading…
Cancel
Save