Repository: interlegis/sapl

Issue:
Bug no método clean de Legislatura



Discussion:

Resolving patch:
diff --git a/sapl/parlamentares/forms.py b/sapl/parlamentares/forms.py
--- a/sapl/parlamentares/forms.py
+++ b/sapl/parlamentares/forms.py
@@ -108,52 +108,16 @@ def clean(self):
         data_fim = data['data_fim']
         data_eleicao = data['data_eleicao']
 
-        if data_eleicao.year >= data_inicio.year:
-            raise ValidationError(_("Data eleição não pode ser inferior a "
-                                    "data início da legislatura"))
+        pk = self.instance.pk
 
-        if data_inicio > data_fim or (data_fim.year - data_inicio.year != 4):
-            raise ValidationError(_("Intervalo de início e fim inválido para "
-                                    "legislatura."))
-
-        return data
-
-
-class LegislaturaCreateForm(LegislaturaForm):
-
-    def clean(self):
-        super(LegislaturaCreateForm, self).clean()
-
-        cleaned_data = self.cleaned_data
-
-        if not self.is_valid():
-            return cleaned_data
-
-        eleicao = cleaned_data['data_eleicao']
-        inicio = cleaned_data['data_inicio']
-        fim = cleaned_data['data_fim']
-
-        valida_datas = validar_datas_legislatura(eleicao, inicio, fim)
+        valida_datas = validar_datas_legislatura(data_eleicao,
+                                                 data_inicio,
+                                                 data_fim,
+                                                 pk=pk)
         if not valida_datas[0]:
             raise ValidationError(valida_datas[1])
-        return cleaned_data
-
-
-class LegislaturaUpdateForm(LegislaturaCreateForm):
-
-    def clean(self):
-        super(LegislaturaUpdateForm, self).clean()
-
-        cleaned_data = super(LegislaturaCreateForm, self).clean()
-        eleicao = cleaned_data['data_eleicao']
-        inicio = cleaned_data['data_inicio']
-        fim = cleaned_data['data_fim']
 
-        valida_datas = validar_datas_legislatura(
-            eleicao, inicio, fim, pk=self.instance.pk)
-        if not valida_datas[0]:
-            raise ValidationError(valida_datas[1])
-        return cleaned_data
+        return data
 
 
 class ParlamentarForm(ModelForm):
diff --git a/sapl/parlamentares/views.py b/sapl/parlamentares/views.py
--- a/sapl/parlamentares/views.py
+++ b/sapl/parlamentares/views.py
@@ -25,7 +25,7 @@
 from sapl.parlamentares.apps import AppConfig
 from sapl.utils import parlamentares_ativos
 
-from .forms import (FiliacaoForm, LegislaturaCreateForm, LegislaturaUpdateForm,
+from .forms import (FiliacaoForm, LegislaturaForm,
                     MandatoForm, ParlamentarCreateForm, ParlamentarForm,
                     VotanteForm)
 from .models import (CargoMesa, Coligacao, ComposicaoColigacao, ComposicaoMesa,
@@ -358,7 +358,7 @@ class LegislaturaCrud(CrudAux):
     help_path = 'tabelas_auxiliares#legislatura'
 
     class CreateView(CrudAux.CreateView):
-        form_class = LegislaturaCreateForm
+        form_class = LegislaturaForm
 
         def get_initial(self):
             try:
@@ -369,7 +369,7 @@ def get_initial(self):
             return {'numero': numero}
 
     class UpdateView(CrudAux.UpdateView):
-        form_class = LegislaturaUpdateForm
+        form_class = LegislaturaForm
 
     class DetailView(CrudAux.DetailView):
 


Test patch: