From 31c3821ac041c84807f8c524f8a6e359f968e207 Mon Sep 17 00:00:00 2001 From: Eduardo Calil Date: Tue, 12 Jan 2016 13:12:08 -0200 Subject: [PATCH] =?UTF-8?q?Fix=20Date=20Issue=20in=20Filia=C3=A7=C3=A3o=20?= =?UTF-8?q?Partid=C3=A1ria?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- parlamentares/views.py | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/parlamentares/views.py b/parlamentares/views.py index de0a40fa9..61aa224cb 100644 --- a/parlamentares/views.py +++ b/parlamentares/views.py @@ -785,6 +785,10 @@ class FiliacaoView(FormMixin, GenericView): form = FiliacaoForm(request.POST) if form.is_valid(): + + data_filiacao = form.cleaned_data['data'] + data_desfiliacao = form.cleaned_data['data_desfiliacao'] + filiacao = form.save(commit=False) pid = kwargs['pk'] parlamentar = Parlamentar.objects.get(id=pid) @@ -792,7 +796,7 @@ class FiliacaoView(FormMixin, GenericView): candidato_filiado = Filiacao.objects.filter( parlamentar=parlamentar) - candidato_desfiliou = Filiacao.objects.filter( + candidato_nao_desfiliou = Filiacao.objects.filter( parlamentar=parlamentar, data_desfiliacao=None) @@ -803,7 +807,7 @@ class FiliacaoView(FormMixin, GenericView): return self.form_valid(form) else: - if candidato_desfiliou: + if candidato_nao_desfiliou: filiacoes = Filiacao.objects.filter( parlamentar=parlamentar) return self.render_to_response( @@ -815,6 +819,18 @@ class FiliacaoView(FormMixin, GenericView): 'mensagem_erro': "Você não pode se filiar a algum partido\ sem antes se desfiliar do partido anterior"}) + if data_desfiliacao and data_desfiliacao < data_filiacao: + filiacoes = Filiacao.objects.filter( + parlamentar=parlamentar) + return self.render_to_response( + {'parlamentar': parlamentar, + 'filiacoes': filiacoes, + 'form': form, + 'legislatura_id': parlamentar.mandato_set.last( + ).legislatura.id, + 'mensagem_erro': "A data de filiação não pode\ + anterior à data de desfiliação"}) + else: filiacao = form.save(commit=False) filiacao.parlamentar = parlamentar