diff --git a/sapl/comissoes/forms.py b/sapl/comissoes/forms.py index 2f63f5120..abcce24f7 100644 --- a/sapl/comissoes/forms.py +++ b/sapl/comissoes/forms.py @@ -55,24 +55,16 @@ class ParticipacaoCreateForm(forms.ModelForm): def clean(self): cleaned_data = super(ParticipacaoCreateForm, self).clean() + if not self.is_valid(): return cleaned_data composicao = Composicao.objects.get(id=self.initial['parent_pk']) - participantes = composicao.participacao_set.all() - - cargos = {} - for parlamentar in participantes: - cargos.update({str(parlamentar.cargo): parlamentar.cargo.unico}) - - for cargo, unico in cargos.items(): - if cleaned_data['cargo'].nome == cargo: - if cleaned_data['cargo'].unico: - msg = _('Este cargo é único para esta composição') - raise ValidationError(msg) - - return cleaned_data + cargos_unicos = [c.cargo.nome for c in composicao.participacao_set.filter(cargo__unico=True)] + if cleaned_data['cargo'].nome in cargos_unicos: + msg = _('Este cargo é único para esta Comissão.') + raise ValidationError(msg) def create_participacao(self):