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 import logging
from datetime import datetime
from django import forms from django import forms
from django.core.exceptions import ObjectDoesNotExist, ValidationError from django.core.exceptions import ObjectDoesNotExist, ValidationError
from django.db import transaction from django.db import transaction
@ -86,6 +88,26 @@ class AudienciaForm(FileFieldCheckMixin, forms.ModelForm):
parlamentar_autor = cleaned_data["parlamentar_autor"] parlamentar_autor = cleaned_data["parlamentar_autor"]
requerimento = cleaned_data["requerimento"] 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: if materia and ano_materia and tipo_materia:
try: try:
self.logger.debug("Tentando obter MateriaLegislativa %s%s/%s." % (tipo_materia, materia, ano_materia)) 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 cleaned_data['numero'] = 1
else: else:
if AudienciaPublica.objects.filter(numero=cleaned_data['numero'], ano=cleaned_data['ano']).exclude(pk=self.instance.pk).exists(): 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_inicio'] and self.cleaned_data['hora_fim']:
if self.cleaned_data['hora_fim'] < self.cleaned_data['hora_inicio']: 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']: for row in context['rows']:
audiencia_id = row[0][1].split('/')[-1] 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]) row[0] = (tema, row[0][1])
coluna_materia = row[3] # Se mudar a ordem de listagem, mudar aqui. coluna_materia = row[3] # Se mudar a ordem de listagem, mudar aqui.
if coluna_materia[0]: if coluna_materia[0]:

Loading…
Cancel
Save