Browse Source

Adiciona validações extra em Audiência Pública (#3632)

* Adiciona validações extra em Audiência Pública

* Mudanças recomendadas por review 1
pull/3635/head
Edward 2 years ago
committed by GitHub
parent
commit
a6e66a9fa1
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 24
      sapl/audiencia/forms.py
  2. 2
      sapl/audiencia/views.py

24
sapl/audiencia/forms.py

@ -1,5 +1,7 @@
import logging
from datetime import datetime
from django import forms
from django.core.exceptions import ObjectDoesNotExist, ValidationError
from django.db import transaction
@ -86,6 +88,26 @@ class AudienciaForm(FileFieldCheckMixin, forms.ModelForm):
parlamentar_autor = cleaned_data["parlamentar_autor"]
requerimento = cleaned_data["requerimento"]
if cleaned_data["ano"] != cleaned_data["data"].year:
raise ValidationError(f"Ano da audiência ({cleaned_data['ano']}) difere "
f"do ano no campo data ({cleaned_data['data'].year})")
#
# TODO: converter hora_inicio e hora_fim para TimeField
#
# valida hora inicio
try:
datetime.strptime(cleaned_data["hora_inicio"], '%H:%M').time()
except ValueError:
raise ValidationError(f"Formato de horário de início inválido: {cleaned_data['hora_inicio']}")
# valida hora fim
if cleaned_data["hora_fim"]:
try:
datetime.strptime(cleaned_data["hora_fim"], '%H:%M').time()
except ValueError:
raise ValidationError(f"Formato de horário de fim inválido: {cleaned_data['hora_fim']}")
if materia and ano_materia and tipo_materia:
try:
self.logger.debug("Tentando obter MateriaLegislativa %s%s/%s." % (tipo_materia, materia, ano_materia))
@ -123,7 +145,7 @@ class AudienciaForm(FileFieldCheckMixin, forms.ModelForm):
cleaned_data['numero'] = 1
else:
if AudienciaPublica.objects.filter(numero=cleaned_data['numero'], ano=cleaned_data['ano']).exclude(pk=self.instance.pk).exists():
raise ValidationError(f"Já existe uma audiência com a numeração {cleaned_data['numero']}.")
raise ValidationError(f"Já existe uma audiência pública com a numeração {str(cleaned_data['numero']).rjust(3, '0')}/{cleaned_data['ano']}.")
if self.cleaned_data['hora_inicio'] and self.cleaned_data['hora_fim']:
if self.cleaned_data['hora_fim'] < self.cleaned_data['hora_inicio']:

2
sapl/audiencia/views.py

@ -32,7 +32,7 @@ class AudienciaCrud(Crud):
for row in context['rows']:
audiencia_id = row[0][1].split('/')[-1]
tema = str(audiencia_materia[audiencia_id][1]) + '/' + str(audiencia_materia[audiencia_id][2])
tema = str(audiencia_materia[audiencia_id][1]).rjust(3, '0') + '/' + str(audiencia_materia[audiencia_id][2])
row[0] = (tema, row[0][1])
coluna_materia = row[3] # Se mudar a ordem de listagem, mudar aqui.
if coluna_materia[0]:

Loading…
Cancel
Save