From 92b168f4b9d9a78fb1d8777c6bd34f498f34182b Mon Sep 17 00:00:00 2001 From: Eduardo Edson Batista Cordeiro Alves Date: Mon, 16 May 2016 13:32:23 -0300 Subject: [PATCH] =?UTF-8?q?Valida=20para=20s=C3=B3=20um=20campo=20ser=20se?= =?UTF-8?q?lecionado=20(#456)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- materia/forms.py | 21 ++++++++++++++++++++- materia/views.py | 15 +++++++++++++-- 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/materia/forms.py b/materia/forms.py index 541079e24..027cf5948 100644 --- a/materia/forms.py +++ b/materia/forms.py @@ -21,7 +21,7 @@ from sapl.utils import RANGE_ANOS from .models import (AcompanhamentoMateria, Anexada, Autor, Autoria, DespachoInicial, DocumentoAcessorio, MateriaLegislativa, Numeracao, Proposicao, Relatoria, TipoMateriaLegislativa, - Tramitacao) + Tramitacao, UnidadeTramitacao) ANO_CHOICES = [('', '---------')] + RANGE_ANOS @@ -32,6 +32,25 @@ def em_tramitacao(): (False, 'Não')] +class UnidadeTramitacaoForm(ModelForm): + + class Meta: + model = UnidadeTramitacao + fields = ['comissao', 'orgao', 'parlamentar'] + + def clean(self): + cleaned_data = self.cleaned_data + + for key in list(cleaned_data.keys()): + if cleaned_data[key] == None: + del cleaned_data[key] + + if len(cleaned_data) != 1: + msg = _('Somente um campo deve preenchido!') + raise ValidationError(msg) + return cleaned_data + + class ProposicaoForm(ModelForm): tipo_materia = forms.ModelChoiceField( diff --git a/materia/views.py b/materia/views.py index 3403a3577..167088b25 100644 --- a/materia/views.py +++ b/materia/views.py @@ -30,7 +30,8 @@ from .forms import (AcompanhamentoMateriaForm, AnexadaForm, AutoriaForm, DespachoInicialForm, DocumentoAcessorioForm, LegislacaoCitadaForm, MateriaLegislativaFilterSet, NumeracaoForm, ProposicaoForm, RelatoriaForm, - TramitacaoForm, filtra_tramitacao_destino, + TramitacaoForm, UnidadeTramitacaoForm, + filtra_tramitacao_destino, filtra_tramitacao_destino_and_status, filtra_tramitacao_status) from .models import (AcompanhamentoMateria, Anexada, Autor, Autoria, @@ -52,7 +53,17 @@ AutorCrud = Crud.build(Autor, 'autor') OrgaoCrud = Crud.build(Orgao, 'orgao') TipoProposicaoCrud = Crud.build(TipoProposicao, 'tipo_proposicao') StatusTramitacaoCrud = Crud.build(StatusTramitacao, 'status_tramitacao') -UnidadeTramitacaoCrud = Crud.build(UnidadeTramitacao, 'unidade_tramitacao') + + +class UnidadeTramitacaoCrud(Crud): + model = UnidadeTramitacao + help_path = 'unidade_tramitacao' + + class CreateView(crud.base.CrudCreateView): + form_class = UnidadeTramitacaoForm + + class UpdateView(crud.base.CrudUpdateView): + form_class = UnidadeTramitacaoForm class ProposicaoCrud(Crud):