diff --git a/sapl/parlamentares/forms.py b/sapl/parlamentares/forms.py index 7da23b763..e794cb61d 100755 --- a/sapl/parlamentares/forms.py +++ b/sapl/parlamentares/forms.py @@ -820,38 +820,38 @@ class ComposicaoMesaForm(ModelForm): class Meta: model = ComposicaoMesa - fields = '__all__' - widgets = { - 'mesa_diretora': forms.HiddenInput() - } + fields = ( + 'parlamentar', + 'cargo' + ) def __init__(self, *args, **kwargs): super(ComposicaoMesaForm, self).__init__(*args, **kwargs) - mesa_diretora = self.initial.get('mesa_diretora', None) - - if mesa_diretora: - self.fields['parlamentar'].queryset = self.fields['parlamentar'].queryset.filter( - mandato__legislatura=mesa_diretora.legislatura) + self.fields['parlamentar'].queryset = self.fields['parlamentar'].queryset.filter( + mandato__legislatura=self.initial.get('mesa_diretora').legislatura) def clean(self): super(ComposicaoMesaForm, self).clean() - if not self.is_valid(): - return self.cleaned_data data = self.cleaned_data - mesa_diretora = data['mesa_diretora'] - cargo = data['cargo'] + cargo = data.get('cargo', None) + if not cargo: + raise ValidationError(_('Cargo é obrigatório.')) # Verifica se Parlamentar já ocupa algum cargo - parlamentar = data['parlamentar'] + parlamentar = data.get('parlamentar', None) + if not parlamentar: + raise ValidationError(_('Parlamentar é obrigatório.')) + if ComposicaoMesa.objects.filter( - parlamentar=parlamentar, mesa_diretora=mesa_diretora + mesa_diretora=self.initial.get('mesa_diretora'), + parlamentar=parlamentar, ).exclude(pk=self.instance.pk).exists(): raise ValidationError(_('Parlamentar já ocupa um cargo nesta mesa diretora.')) if cargo.unico: composicao_mesa = ComposicaoMesa.objects.filter( - mesa_diretora=mesa_diretora, + mesa_diretora=self.initial.get('mesa_diretora'), cargo=cargo ).exclude(pk=self.instance.pk) if composicao_mesa.exists():