diff --git a/sapl/base/forms.py b/sapl/base/forms.py index de71e9994..5942bef92 100644 --- a/sapl/base/forms.py +++ b/sapl/base/forms.py @@ -10,6 +10,7 @@ from django.contrib.auth.forms import (AuthenticationForm, PasswordResetForm, from django.contrib.auth.models import Group, User from django.core.exceptions import ValidationError from django.db import models, transaction +from django.db.models import Q from django.forms import Form, ModelForm from django.utils.translation import ugettext_lazy as _ from django.utils.translation import string_concat @@ -187,27 +188,33 @@ class SessaoLegislativaForm(ModelForm): terceiro_caso = Q(data_inicio__range=(data_inicio, data_fim), data_fim__gt=data_fim) sessoes_existentes = SessaoLegislativa.objects.filter(primeiro_caso|segundo_caso|terceiro_caso).\ exclude(pk=pk) - if sessoes_existentes: + + if sessoes_existentes: raise ValidationError('Já existe registrado uma Sessão Legislativa que coincide com a data ' 'inserida, favor verificar as Sessões existentes antes de criar uma ' 'nova Sessão Legislativa') - sessoes_legislativas = SessaoLegislativa.objects.filter(legislatura=legislatura).exclude(pk=pk) - if sessoes_legislativas: + + sessoes_legislativas = SessaoLegislativa.objects.filter(legislatura=legislatura).exclude(pk=pk) + + if sessoes_legislativas: numeracoes = [n.numero for n in sessoes_legislativas] numeracoes = sorted(numeracoes) ult = max(numeracoes) - else: + else: ult = SessaoLegislativa.objects.latest('data_fim') flag_edit = ult.id != pk ult = ult.numero - if numero <= ult and flag_edit: + + if numero <= ult and flag_edit: raise ValidationError('O número da Sessão Legislativa não pode ser menor ou igual ' 'que o de Sessões Legislativas passadas') - if data_inicio < data_inicio_leg or \ + + if data_inicio < data_inicio_leg or \ data_inicio > data_fim_leg: raise ValidationError('A data de início da Sessão Legislativa deve estar compreendida ' 'entre a data início e fim da Legislatura selecionada') - if data_fim > data_fim_leg or \ + + if data_fim > data_fim_leg or \ data_fim < data_inicio_leg: raise ValidationError('A data de fim da Sessão Legislativa deve estar compreendida ' 'entre a data início e fim da Legislatura selecionada') @@ -223,7 +230,7 @@ class SessaoLegislativaForm(ModelForm): raise ValidationError('Data início de intervalo não pode ser ' 'superior à data fim de intervalo') - if data_inicio_intervalo: + if data_inicio_intervalo: if data_inicio_intervalo < data_inicio or \ data_inicio_intervalo < data_inicio_leg or \ data_inicio_intervalo > data_fim or \ @@ -231,7 +238,7 @@ class SessaoLegislativaForm(ModelForm): raise ValidationError('A data de início do intervalo deve estar compreendida entre ' 'as datas de início e fim tanto da Legislatura quanto da ' 'própria Sessão Legislativa') - if data_fim_intervalo: + if data_fim_intervalo: if data_fim_intervalo > data_fim or \ data_fim_intervalo > data_fim_leg or \ data_fim_intervalo < data_inicio or \ @@ -239,7 +246,6 @@ class SessaoLegislativaForm(ModelForm): raise ValidationError('A data de fim do intervalo deve estar compreendida entre ' 'as datas de início e fim tanto da Legislatura quanto da ' 'própria Sessão Legislativa') - return cleaned_data @@ -869,7 +875,8 @@ class RelatorioMateriasPorAutorFilterSet(django_filters.FilterSet): @property def qs(self): parent = super(RelatorioMateriasPorAutorFilterSet, self).qs - return parent.distinct().filter(autoria__primeiro_autor=True).order_by('autoria__autor', '-autoria__primeiro_autor', 'tipo', '-ano', '-numero') + return parent.distinct().filter(autoria__primeiro_autor=True)\ + .order_by('autoria__autor', '-autoria__primeiro_autor', 'tipo', '-ano', '-numero') class Meta: model = MateriaLegislativa