diff --git a/sapl/sessao/forms.py b/sapl/sessao/forms.py index 189bf64ac..08daeda16 100644 --- a/sapl/sessao/forms.py +++ b/sapl/sessao/forms.py @@ -465,7 +465,6 @@ class OradorExpedienteForm(ModelForm): def __init__(self, *args, **kwargs): super(OradorExpedienteForm, self).__init__(*args, **kwargs) - legislatura_vigente = SessaoPlenaria.objects.get(pk=kwargs['initial']['id_sessao']).legislatura if legislatura_vigente: @@ -482,30 +481,16 @@ class OradorExpedienteForm(ModelForm): return self.cleaned_data sessao_id = self.initial['id_sessao'] + try: + numero = self.initial['numero'] + except KeyError: + numero = None ordem = OradorExpediente.objects.filter( sessao_plenaria_id=sessao_id, numero_ordem=cleaned_data['numero_ordem'] ).exists() - if ordem: - raise ValidationError(_( - 'Já existe orador nesta posição da ordem de pronunciamento')) - - return self.cleaned_data - - def clean(self): - super(OradorExpedienteForm, self).clean() - cleaned_data = self.cleaned_data - - if not self.is_valid(): - return self.cleaned_data - - sessao_id = self.initial['id_sessao'] - ordem = OradorExpediente.objects.filter( - sessao_plenaria_id=sessao_id, - numero_ordem=cleaned_data['numero_ordem'] - ).exists() - if ordem: + if ordem and (cleaned_data['numero_ordem'] != numero): raise ValidationError(_( 'Já existe orador nesta posição da ordem de pronunciamento')) diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py index b50ab32f0..953a8e3fa 100644 --- a/sapl/sessao/views.py +++ b/sapl/sessao/views.py @@ -385,7 +385,7 @@ def customize_link_materia(context, pk, has_permission, is_expediente): context['rows'][i][3] = (resultado, None) return context - + def get_presencas_generic(model, sessao, legislatura): presencas = model.objects.filter( sessao_plenaria=sessao) @@ -547,6 +547,14 @@ class OradorExpedienteCrud(OradorCrud): kwargs={'pk': self.kwargs['pk']}) + class UpdateView(MasterDetailCrud.UpdateView): + form_class = OradorExpedienteForm + + def get_initial(self): + return {'id_sessao': self.object.sessao_plenaria.id, + 'numero': self.object.numero_ordem} + + class OradorCrud(OradorCrud): model = Orador