Browse Source

fix: https://github.com/interlegis/sapl/pull/3829#discussion_r3093327707

3828_refatorar_mesa_diretora
LeandroJatai 1 day ago
parent
commit
5faefcbec1
  1. 32
      sapl/parlamentares/forms.py

32
sapl/parlamentares/forms.py

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

Loading…
Cancel
Save