diff --git a/sapl/audiencia/forms.py b/sapl/audiencia/forms.py index 9312a237b..9f55d3e6d 100644 --- a/sapl/audiencia/forms.py +++ b/sapl/audiencia/forms.py @@ -98,7 +98,7 @@ class AudienciaForm(forms.ModelForm): if self.cleaned_data['hora_inicio'] and self.cleaned_data['hora_fim']: if (self.cleaned_data['hora_fim'] < self.cleaned_data['hora_inicio']): - msg = _('A hora de fim não pode ser anterior a hora de ínicio') + msg = _('A hora de fim não pode ser anterior a hora de início') raise ValidationError(msg) return cleaned_data diff --git a/sapl/sessao/forms.py b/sapl/sessao/forms.py index 06dd40830..e0c5779f3 100644 --- a/sapl/sessao/forms.py +++ b/sapl/sessao/forms.py @@ -75,6 +75,8 @@ class SessaoPlenariaForm(ModelForm): sl = self.cleaned_data['sessao_legislativa'] leg = self.cleaned_data['legislatura'] tipo = self.cleaned_data['tipo'] + abertura = self.cleaned_data['data_inicio'] + encerramento = self.cleaned_data['data_fim'] error = ValidationError( "Número de Sessão Plenária já existente " @@ -96,6 +98,91 @@ class SessaoPlenariaForm(ModelForm): else: # create raise error + + # Condições da verificação + abertura_entre_leg = leg.data_inicio < abertura < leg.data_fim + abertura_entre_sl = sl.data_inicio < abertura < sl.data_fim + if encerramento is not None: + encerramento_entre_leg = leg.data_inicio < encerramento < leg.data_fim + encerramento_entre_sl = sl.data_inicio < encerramento < sl.data_fim + + # Verificação das datas de abertura e encerramento da Sessão + # Verificações com a data de encerramento preenchidas + if encerramento is not None: + # Verifica se a data de encerramento é anterior a data de abertura + if encerramento < abertura: + raise ValidationError("A data de encerramento não pode ser " + "anterior a data de abertura.") + # Verifica se a data de abertura está entre a data de início e fim da legislatura + if abertura_entre_leg and encerramento_entre_leg: + if abertura_entre_sl and encerramento_entre_sl: + pass + elif abertura_entre_sl and not encerramento_entre_sl: + raise ValidationError("A data de encerramento deve estar entre " + "as datas de início e fim da Sessão Legislativa.") + elif not abertura_entre_sl and encerramento_entre_sl: + raise ValidationError("A data de abertura deve estar entre as " + "datas de início e fim da Sessão Legislativa.") + elif not abertura_entre_sl and not encerramento_entre_sl: + raise ValidationError("A data de abertura e de encerramento devem estar " + "entre as datas de início e fim da Sessão Legislativa.") + elif abertura_entre_leg and not encerramento_entre_leg: + if abertura_entre_sl and encerramento_entre_sl: + raise ValidationError("A data de encerramento deve estar entre " + "as datas de início e fim da Legislatura.") + elif abertura_entre_sl and not encerramento_entre_sl: + raise ValidationError("A data de encerramento deve estar entre " + "as datas de início e fim tanto da " + "Legislatura quanto da Sessão Legislativa.") + elif not abertura_entre_sl and encerramento_entre_sl: + raise ValidationError("As datas de abertura e encerramento devem " + "estar entre as " + "datas de início e fim tanto Legislatura " + "quanto da Sessão Legislativa.") + elif not abertura_entre_sl and not encerramento_entre_sl: + raise ValidationError("As datas de abertura e encerramento devem " + "estar entre as " + "datas de início e fim tanto Legislatura " + "quanto da Sessão Legislativa.") + elif not abertura_entre_leg and not encerramento_entre_leg: + if abertura_entre_sl and encerramento_entre_sl: + raise ValidationError("As datas de abertura e encerramento devem " + "estar entre as " + "datas de início e fim da Legislatura.") + elif abertura_entre_sl and not encerramento_entre_sl: + raise ValidationError("As datas de abertura e encerramento devem " + "estar entre as " + "datas de início e fim tanto Legislatura " + "quanto da Sessão Legislativa.") + elif not abertura_entre_sl and encerramento_entre_sl: + raise ValidationError("As datas de abertura e encerramento devem " + "estar entre as " + "datas de início e fim tanto Legislatura " + "quanto da Sessão Legislativa.") + elif not abertura_entre_sl and not encerramento_entre_sl: + raise ValidationError("As datas de abertura e encerramento devem " + "estar entre as " + "datas de início e fim tanto Legislatura " + "quanto da Sessão Legislativa.") + + + # Verificações com a data de encerramento vazia + else: + if abertura_entre_leg: + if abertura_entre_sl: + pass + else: + raise ValidationError("A data de abertura da sessão deve estar " + "entre a data de início e fim da Sessão Legislativa.") + else: + if abertura_entre_sl: + raise ValidationError("A data de abertura da sessão deve estar " + "entre a data de início e fim da Legislatura.") + else: + raise ValidationError("A data de abertura da sessão deve estar " + "entre a data de início e fim tanto da " + "Legislatura quanto da Sessão Legislativa.") + return self.cleaned_data