Browse Source

Adiciona file check em Audiencia e Parlamentar e mostra todos os erros

pull/2534/head
Cesar Carvalho 7 years ago
parent
commit
5ae50ecdfa
  1. 4
      sapl/audiencia/forms.py
  2. 3
      sapl/parlamentares/forms.py
  3. 8
      sapl/utils.py

4
sapl/audiencia/forms.py

@ -10,9 +10,9 @@ from crispy_forms.layout import HTML, Button, Column, Fieldset, Layout
from sapl.crispy_layout_mixin import SaplFormHelper
from sapl.crispy_layout_mixin import SaplFormLayout, form_actions, to_row
from sapl.materia.models import MateriaLegislativa, TipoMateriaLegislativa
from sapl.utils import timezone
from sapl.utils import timezone, FileFieldCheckMixin
class AudienciaForm(forms.ModelForm):
class AudienciaForm(FileFieldCheckMixin, forms.ModelForm):
logger = logging.getLogger(__name__)
data_atual = timezone.now()

3
sapl/parlamentares/forms.py

@ -15,6 +15,7 @@ from django.utils import timezone
from django.utils.translation import ugettext_lazy as _
from floppyforms.widgets import ClearableFileInput
from image_cropping.widgets import CropWidget, ImageCropWidget
from sapl.utils import FileFieldCheckMixin
from sapl.base.models import Autor, TipoAutor
from sapl.crispy_layout_mixin import form_actions, to_row
@ -196,7 +197,7 @@ class LegislaturaForm(ModelForm):
return data
class ParlamentarForm(ModelForm):
class ParlamentarForm(FileFieldCheckMixin, ModelForm):
class Meta:
model = Parlamentar

8
sapl/utils.py

@ -580,6 +580,7 @@ class NormaPesquisaOrderingFilter(django_filters.OrderingFilter):
class FileFieldCheckMixin(BaseForm):
def _check(self):
cleaned_data = super(FileFieldCheckMixin, self).clean()
errors = []
for name, campo in self.fields.items():
if isinstance(campo, forms.fields.FileField):
error = self.errors.get(name)
@ -589,14 +590,17 @@ class FileFieldCheckMixin(BaseForm):
"arquivo no campo '{}'".format(
campo.label))
for e in error]
raise ValidationError(msgs)
for msg in msgs:
errors.append(msg)
arquivo = self.cleaned_data.get(name)
if arquivo and not isinstance(arquivo, UploadedFile):
if not os.path.exists(arquivo.path):
raise ValidationError("Arquivo referenciado no campo "
errors.append("Arquivo referenciado no campo "
" '%s' inexistente! Marque a "
"opção Limpar e Salve." % campo.label)
if errors:
raise ValidationError(errors)
return cleaned_data
def clean(self):

Loading…
Cancel
Save