diff --git a/sapl/sessao/forms.py b/sapl/sessao/forms.py index 1ade99710..d069e5ce9 100644 --- a/sapl/sessao/forms.py +++ b/sapl/sessao/forms.py @@ -79,11 +79,26 @@ class ExpedienteMateriaForm(ModelForm): fields = ['data_ordem', 'numero_ordem', 'tipo_materia', 'observacao', 'numero_materia', 'ano_materia', 'tipo_votacao'] + def clean_numero_ordem(self): + sessao = self.instance.sessao_plenaria + + ex = ExpedienteMateria.objects.filter( + sessao_plenaria=sessao, + numero_ordem=self.cleaned_data['numero_ordem']).count() + + if ex >= 1: + msg = _('Esse número de ordem já existe.') + raise ValidationError(msg) + + return self.cleaned_data['numero_ordem'] + def clean_data_ordem(self): return datetime.now() def clean(self): cleaned_data = self.cleaned_data + sessao = self.instance.sessao_plenaria + try: materia = MateriaLegislativa.objects.get( numero=self.cleaned_data['numero_materia'], @@ -96,6 +111,14 @@ class ExpedienteMateriaForm(ModelForm): else: cleaned_data['materia'] = materia + ex = ExpedienteMateria.objects.filter( + sessao_plenaria=sessao, + materia=materia).count() + + if ex >= 1: + msg = _('Essa matéria já foi cadastrada.') + raise ValidationError(msg) + return cleaned_data def save(self, commit=False): @@ -117,6 +140,8 @@ class OrdemDiaForm(ExpedienteMateriaForm): def clean(self): cleaned_data = self.cleaned_data + sessao = self.instance.sessao_plenaria + try: materia = MateriaLegislativa.objects.get( numero=self.cleaned_data['numero_materia'], @@ -129,6 +154,14 @@ class OrdemDiaForm(ExpedienteMateriaForm): else: cleaned_data['materia'] = materia + ex = ExpedienteMateria.objects.filter( + sessao_plenaria=sessao, + materia=materia).count() + + if ex >= 1: + msg = _('Essa matéria já foi cadastrada.') + raise ValidationError(msg) + return cleaned_data def save(self, commit=False):