diff --git a/sessao/forms.py b/sessao/forms.py index 64af5caaf..cfca3975a 100644 --- a/sessao/forms.py +++ b/sessao/forms.py @@ -13,7 +13,7 @@ from crispy_layout_mixin import form_actions from materia.models import MateriaLegislativa, TipoMateriaLegislativa from sapl.utils import RANGE_DIAS_MES, RANGE_MESES -from .models import ExpedienteMateria, SessaoPlenaria +from .models import Bancada, ExpedienteMateria, SessaoPlenaria def pega_anos(): @@ -29,6 +29,22 @@ MES_CHOICES = [('', '---------')] + RANGE_MESES DIA_CHOICES = [('', '---------')] + RANGE_DIAS_MES +class BancadaForm(ModelForm): + + class Meta: + model = Bancada + fields = ['legislatura', 'nome', 'partido', 'data_criacao', + 'data_extincao', 'descricao'] + + def clean(self): + if self.cleaned_data['data_extincao']: + if (self.cleaned_data['data_extincao'] < + self.cleaned_data['data_criacao']): + msg = _('Data de extinção não pode ser menor que a de criação') + raise ValidationError(msg) + return self.cleaned_data + + class ExpedienteMateriaForm(ModelForm): tipo_materia = forms.ModelChoiceField( diff --git a/sessao/views.py b/sessao/views.py index 19b3192bf..680d72369 100644 --- a/sessao/views.py +++ b/sessao/views.py @@ -23,10 +23,10 @@ from norma.models import NormaJuridica from parlamentares.models import Parlamentar from sessao.serializers import SessaoPlenariaSerializer -from .forms import (ExpedienteForm, ExpedienteMateriaForm, ListMateriaForm, - MateriaOrdemDiaForm, MesaForm, PresencaForm, - SessaoPlenariaFilterSet, VotacaoEditForm, VotacaoForm, - VotacaoNominalForm) +from .forms import (BancadaForm, ExpedienteForm, ExpedienteMateriaForm, + ListMateriaForm, MateriaOrdemDiaForm, MesaForm, + PresencaForm, SessaoPlenariaFilterSet, VotacaoEditForm, + VotacaoForm, VotacaoNominalForm) from .models import (Bancada, CargoBancada, CargoMesa, ExpedienteMateria, ExpedienteSessao, IntegranteMesa, MateriaLegislativa, Orador, OradorExpediente, OrdemDia, PresencaOrdemDia, @@ -66,6 +66,12 @@ class BancadaCrud(Crud): class ListView(crud.base.CrudListView): ordering = 'legislatura' + class CreateView(crud.base.CrudCreateView): + form_class = BancadaForm + + class UpdateView(crud.base.CrudUpdateView): + form_class = BancadaForm + def abrir_votacao_view(request, pk, spk): existe_votacao_aberta = ExpedienteMateria.objects.filter(