From a24ee11d4a68e565258a9787d2f3261a7d420663 Mon Sep 17 00:00:00 2001 From: Cesar Carvalho Date: Mon, 28 Jan 2019 16:58:56 -0200 Subject: [PATCH] tela de alteracao de nome --- sapl/parlamentares/forms.py | 21 ++++++++++++++----- sapl/parlamentares/views.py | 10 +++++++-- .../altera_nome_partido_form.html | 1 - .../parlamentares/partido_detail.html | 4 ++-- 4 files changed, 26 insertions(+), 10 deletions(-) diff --git a/sapl/parlamentares/forms.py b/sapl/parlamentares/forms.py index 5976848fc..6f9f5faf0 100755 --- a/sapl/parlamentares/forms.py +++ b/sapl/parlamentares/forms.py @@ -22,7 +22,7 @@ from sapl.crispy_layout_mixin import form_actions, to_row, SaplFormLayout from sapl.rules import SAPL_GROUP_VOTANTE from .models import (ComposicaoColigacao, Filiacao, Frente, Legislatura, - Mandato, Parlamentar, Votante) + Mandato, Parlamentar, Votante, Partido) class ImageThumbnailFileInput(ClearableFileInput): @@ -502,6 +502,8 @@ class EditarNomePartidoForm(forms.Form): sigla = forms.CharField(label="Sigla") nome = forms.CharField(label="Novo Nome") data_alteracao = forms.DateField(label="Data de alteração") + partido_pk = forms.CharField( + widget=forms.HiddenInput(), required=False) def __init__(self, *args, **kwargs): super(EditarNomePartidoForm, self).__init__(*args, **kwargs) @@ -509,19 +511,28 @@ class EditarNomePartidoForm(forms.Form): row1 = to_row([('sigla', 2)]) row2 = to_row([('nome', 8)]) row3 = to_row([('data_alteracao', 2)]) + row4 = to_row([('partido_pk', 2)]) self.helper = FormHelper() self.helper.layout = SaplFormLayout( Fieldset(_('Alteração do nome do partido'), - row1, row2, row3)) + row1, row2, row3, row4)) + def clean(self): super(EditarNomePartidoForm, self).clean() if not self.is_valid(): return self.cleaned_data + obj = Partido.objects.get(id=self.cleaned_data['partido_pk']) - - import ipdb; ipdb.set_trace() + if obj.sigla == self.cleaned_data['sigla']: + raise ValidationError("Sigla do partido igual à silga atual. Formulário inválido.") + + if obj.nome == self.cleaned_data['nome']: + raise ValidationError("Nome do partido igual ao nome atual. Formulário inválido.") - return self.cleaned_data \ No newline at end of file + if not self.cleaned_data['data_alteracao'] <= timezone.now().date(): + raise ValidationError("Data de alteração maior que data atual. Formulário inválido.") + + return self.cleaned_data diff --git a/sapl/parlamentares/views.py b/sapl/parlamentares/views.py index 63857d47b..6e4eb8975 100644 --- a/sapl/parlamentares/views.py +++ b/sapl/parlamentares/views.py @@ -767,15 +767,21 @@ class EditaNomePartidoView(PermissionRequiredMixin, FormView): template_name = 'parlamentares/altera_nome_partido_form.html' permission_required = ('parlamentares.altera_nome_partido',) + def get_initial(self): + initial = super(EditaNomePartidoView, self).get_initial() + initial['partido_pk'] = self.kwargs['pk'] + return initial + + def form_valid(self, form): data = form.cleaned_data obj = Partido.objects.get(id=self.kwargs['pk']) - observacao += "Este partido teve o nome alterado de " + obj.nome + \ + observacao = "Este partido teve o nome alterado de " + obj.nome + \ " (" + obj.sigla + ") para " + data['nome'] + " (" + data['sigla'] \ + ") em " + data['data_alteracao'].strftime("%d/%m/%Y") + "." obj.nome = data['nome'] obj.sigla = data['sigla'] - obj.observacao = observacao + obj.observacao += '\n\n' + observacao obj.save() return HttpResponseRedirect(self.get_success_url()) diff --git a/sapl/templates/parlamentares/altera_nome_partido_form.html b/sapl/templates/parlamentares/altera_nome_partido_form.html index ab31ae300..da2c6116e 100644 --- a/sapl/templates/parlamentares/altera_nome_partido_form.html +++ b/sapl/templates/parlamentares/altera_nome_partido_form.html @@ -4,5 +4,4 @@ {% block detail_content %} {% crispy form %} - {% endblock detail_content %} diff --git a/sapl/templates/parlamentares/partido_detail.html b/sapl/templates/parlamentares/partido_detail.html index e6ec0891a..681e1a1eb 100644 --- a/sapl/templates/parlamentares/partido_detail.html +++ b/sapl/templates/parlamentares/partido_detail.html @@ -5,8 +5,8 @@ {{ block.super }} -
- {% trans 'Alterar o nome do partido' %} +