Browse Source

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

pull/3632/head
Edward Ribeiro 2 years ago
parent
commit
ceef7f76b7
  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 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 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