Browse Source

refatora clean de SessaoPlenariaForm

pull/2835/head
Leandro Roberto 7 years ago
parent
commit
547225d8b8
  1. 28
      sapl/sessao/forms.py

28
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):

Loading…
Cancel
Save