diff --git a/sapl/parlamentares/forms.py b/sapl/parlamentares/forms.py index b09c054ec..827ed4f6b 100644 --- a/sapl/parlamentares/forms.py +++ b/sapl/parlamentares/forms.py @@ -24,7 +24,6 @@ class LegislaturaForm(ModelForm): def clean(self): cleaned_data = self.cleaned_data - numero = cleaned_data['numero'] data_inicio = cleaned_data['data_inicio'] data_fim = cleaned_data['data_fim'] data_eleicao = cleaned_data['data_eleicao'] @@ -33,6 +32,14 @@ class LegislaturaForm(ModelForm): raise ValidationError(_('A data início deve ser menor que a ' + 'data fim, e a data eleição deve ser ' + 'menor que a data início')) + return cleaned_data + + +class LegislaturaCreateForm(LegislaturaForm): + + def clean(self): + cleaned_data = super(LegislaturaCreateForm, self).clean() + numero = cleaned_data['numero'] if Legislatura.objects.filter(numero=numero).exists(): raise ValidationError( _('Já cadastrada uma legislatura com este número')) diff --git a/sapl/parlamentares/views.py b/sapl/parlamentares/views.py index 55733dc22..2f243395a 100644 --- a/sapl/parlamentares/views.py +++ b/sapl/parlamentares/views.py @@ -11,8 +11,8 @@ from sapl.crud.base import (RP_CHANGE, RP_DETAIL, RP_LIST, Crud, CrudAux, from sapl.materia.models import Proposicao, Relatoria from sapl.parlamentares.apps import AppConfig -from .forms import (FiliacaoForm, LegislaturaForm, ParlamentarCreateForm, - ParlamentarForm) +from .forms import (FiliacaoForm, LegislaturaForm, LegislaturaCreateForm, + ParlamentarCreateForm, ParlamentarForm) from .models import (CargoMesa, Coligacao, ComposicaoColigacao, ComposicaoMesa, Dependente, Filiacao, Frente, Legislatura, Mandato, NivelInstrucao, Parlamentar, Partido, SessaoLegislativa, @@ -149,7 +149,18 @@ class LegislaturaCrud(CrudAux): model = Legislatura help_path = 'tabelas_auxiliares#legislatura' - class BaseMixin(CrudAux.BaseMixin): + class CreateView(CrudAux.CreateView): + form_class = LegislaturaCreateForm + + def get_initial(self): + try: + ultima_legislatura = Legislatura.objects.latest('numero') + numero = ultima_legislatura.numero + 1 + except Legislatura.DoesNotExist: + numero = 1 + return {'numero': numero} + + class UpdateView(CrudAux.UpdateView): form_class = LegislaturaForm diff --git a/sapl/templates/parlamentares/layouts.yaml b/sapl/templates/parlamentares/layouts.yaml index 9948256bd..8b7306922 100644 --- a/sapl/templates/parlamentares/layouts.yaml +++ b/sapl/templates/parlamentares/layouts.yaml @@ -5,7 +5,8 @@ CargoMesa: Legislatura: {% trans 'Legislatura' %}: - - numero:2 data_inicio data_fim data_eleicao + - numero:12 + - data_eleicao data_inicio data_fim Coligacao: {% trans 'Coligação' %}: