diff --git a/sapl/materia/forms.py b/sapl/materia/forms.py index a852d30a3..0ea81f1a8 100644 --- a/sapl/materia/forms.py +++ b/sapl/materia/forms.py @@ -118,6 +118,51 @@ class MateriaSimplificadaForm(ModelForm): ) super(MateriaSimplificadaForm, self).__init__(*args, **kwargs) + def clean(self): + super(MateriaSimplificadaForm, self).clean() + + cleaned_data = self.cleaned_data + + data_apresentacao = cleaned_data['data_apresentacao'] + ano = cleaned_data['ano'] + + if data_apresentacao.year != ano: + raise ValidationError("O ano da matéria não pode ser " + "diferente do ano na data de apresentação") + + return cleaned_data + + +class MateriaLegislativaForm(ModelForm): + + class Meta: + model = MateriaLegislativa + exclude = ['texto_articulado', 'autores', 'proposicao', + 'anexadas', 'data_ultima_atualizacao'] + + def clean(self): + super(MateriaLegislativaForm, self).clean() + + cleaned_data = self.cleaned_data + + data_apresentacao = cleaned_data['data_apresentacao'] + ano = cleaned_data['ano'] + + if data_apresentacao.year != ano: + raise ValidationError("O ano da matéria não pode ser " + "diferente do ano na data de apresentação") + + ano_origem_externa = cleaned_data['ano_origem_externa'] + data_origem_externa = cleaned_data['data_origem_externa'] + + if ano_origem_externa and data_origem_externa and \ + ano_origem_externa != data_origem_externa.year: + raise ValidationError("O ano de origem externa da matéria não " + "pode ser diferente do ano na data de " + "origem externa") + + + return cleaned_data class UnidadeTramitacaoForm(ModelForm): diff --git a/sapl/materia/views.py b/sapl/materia/views.py index df26a31ca..50f3a525d 100644 --- a/sapl/materia/views.py +++ b/sapl/materia/views.py @@ -54,7 +54,7 @@ from .forms import (AcessorioEmLoteFilterSet, AcompanhamentoMateriaForm, RelatoriaForm, TramitacaoEmLoteFilterSet, filtra_tramitacao_destino, filtra_tramitacao_destino_and_status, - filtra_tramitacao_status) + filtra_tramitacao_status, MateriaLegislativaForm) from .models import (AcompanhamentoMateria, Anexada, AssuntoMateria, Autoria, DespachoInicial, DocumentoAcessorio, MateriaAssunto, MateriaLegislativa, Numeracao, Orgao, Origem, Proposicao, @@ -1305,6 +1305,16 @@ class MateriaLegislativaCrud(Crud): class CreateView(Crud.CreateView): + form_class = MateriaLegislativaForm + + @property + def cancel_url(self): + return self.search_url + + class UpdateView(Crud.UpdateView): + + form_class = MateriaLegislativaForm + @property def cancel_url(self): return self.search_url diff --git a/sapl/parlamentares/views.py b/sapl/parlamentares/views.py index 5f105ac01..0c11ad0a6 100644 --- a/sapl/parlamentares/views.py +++ b/sapl/parlamentares/views.py @@ -465,10 +465,13 @@ class ParlamentarCrud(Crud): try: return int(self.request.GET['pk']) except: - for l in Legislatura.objects.all(): + legislaturas = Legislatura.objects.all() + for l in legislaturas: if l.atual(): return l.id - return l.first() + if legislaturas: + return legislaturas[0].id + return 0 def get_queryset(self): queryset = super().get_queryset()