From 547225d8b8ac36f73ee87eb827f591f24b3c4271 Mon Sep 17 00:00:00 2001 From: Leandro Roberto Date: Mon, 10 Jun 2019 10:44:49 -0300 Subject: [PATCH] refatora clean de SessaoPlenariaForm --- sapl/sessao/forms.py | 28 +++++++++------------------- 1 file changed, 9 insertions(+), 19 deletions(-) diff --git a/sapl/sessao/forms.py b/sapl/sessao/forms.py index 65d89d984..523e1cede 100644 --- a/sapl/sessao/forms.py +++ b/sapl/sessao/forms.py @@ -1,6 +1,5 @@ from datetime import datetime -from sapl.crispy_layout_mixin import SaplFormHelper from crispy_forms.layout import HTML, Button, Fieldset, Layout from django import forms from django.contrib.contenttypes.models import ContentType @@ -13,6 +12,7 @@ from django.utils.translation import ugettext_lazy as _ import django_filters from sapl.base.models import Autor, TipoAutor +from sapl.crispy_layout_mixin import SaplFormHelper from sapl.crispy_layout_mixin import form_actions, to_row, SaplFormLayout from sapl.materia.forms import MateriaLegislativaFilterSet from sapl.materia.models import (MateriaLegislativa, StatusTramitacao, @@ -60,21 +60,11 @@ class SessaoPlenariaForm(FileFieldCheckMixin, ModelForm): "para a Legislatura, Sessão Legislativa e Tipo informados. " "Favor escolher um número distinto.") - sessoes = SessaoPlenaria.objects.filter(numero=num, - sessao_legislativa=sl, - legislatura=leg, - tipo=tipo, - data_inicio__year=abertura.year).\ - values_list('id', flat=True) - - qtd_sessoes = len(sessoes) + qs = tipo.queryset_tipo_numeracao(leg, sl, abertura) + qs &= Q(numero=num) - if qtd_sessoes > 0: - if instance.pk: # update - if instance.pk not in sessoes or qtd_sessoes > 1: - raise error - else: # create - raise error + if SessaoPlenaria.objects.filter(qs).exclude(pk=instance.pk).exists(): + raise error # Condições da verificação abertura_entre_leg = leg.data_inicio <= abertura <= leg.data_fim @@ -640,7 +630,7 @@ class OradorForm(ModelForm): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.fields['parlamentar'].queryset = \ - Parlamentar.objects.filter(ativo=True).order_by('nome_parlamentar') + Parlamentar.objects.filter(ativo=True).order_by('nome_parlamentar') def clean(self): super(OradorForm, self).clean() @@ -662,8 +652,8 @@ class OradorForm(ModelForm): "Já existe orador nesta posição de ordem de pronunciamento" )) - return self.cleaned_data + class Meta: model = Orador exclude = ['sessao_plenaria'] @@ -676,7 +666,7 @@ class OradorExpedienteForm(ModelForm): sessao = SessaoPlenaria.objects.get(id=id_sessao) legislatura_vigente = sessao.legislatura self.fields['parlamentar'].queryset = \ - Parlamentar.objects.filter(mandato__legislatura=legislatura_vigente, + Parlamentar.objects.filter(mandato__legislatura=legislatura_vigente, ativo=True).order_by('nome_parlamentar') def clean(self): @@ -711,7 +701,7 @@ class OradorOrdemDiaForm(ModelForm): sessao = SessaoPlenaria.objects.get(id=id_sessao) legislatura_vigente = sessao.legislatura self.fields['parlamentar'].queryset = \ - Parlamentar.objects.filter(mandato__legislatura=legislatura_vigente, + Parlamentar.objects.filter(mandato__legislatura=legislatura_vigente, ativo=True).order_by('nome_parlamentar') def clean(self):