From f52c8e31b8a5e33e1ba47bea399b4273b6253122 Mon Sep 17 00:00:00 2001 From: Edward Oliveira Date: Mon, 13 Jun 2022 12:09:20 -0300 Subject: [PATCH] =?UTF-8?q?Adiciona=20validadores=20de=20hora=20de=20sess?= =?UTF-8?q?=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sapl/sessao/forms.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/sapl/sessao/forms.py b/sapl/sessao/forms.py index 851f2d744..207e5908b 100644 --- a/sapl/sessao/forms.py +++ b/sapl/sessao/forms.py @@ -1,3 +1,4 @@ +import re import django_filters from crispy_forms.layout import Button, Fieldset, HTML, Layout @@ -42,6 +43,8 @@ DIA_CHOICES = RANGE_DIAS_MES class SessaoPlenariaForm(FileFieldCheckMixin, ModelForm): + TIME_PATTERN = '^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$' + class Meta: model = SessaoPlenaria exclude = ['cod_andamento_sessao'] @@ -118,6 +121,16 @@ class SessaoPlenariaForm(FileFieldCheckMixin, ModelForm): if upload_anexo: validar_arquivo(upload_anexo, "Anexo da Sessão") + hora_inicio = self.cleaned_data['hora_inicio'] + if not re.match(self.TIME_PATTERN, hora_inicio): + raise ValidationError(f'Formato ou valores de horário de ' + f'abertura errados: {hora_inicio}') + + hora_fim = self.cleaned_data['hora_fim'] + if hora_fim and not re.match(self.TIME_PATTERN, hora_fim): + raise ValidationError(f'Formato ou valores de horário de ' + f'encerramento errados: {hora_fim}.') + return self.cleaned_data