From 8aedb279eba3819c40187c7b058f4f1f222eb99c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Rodrigues?= Date: Tue, 9 Jul 2019 20:50:37 -0300 Subject: [PATCH] =?UTF-8?q?Adicionar=20valida=C3=A7=C3=A3o=20upload=20arqu?= =?UTF-8?q?ivos=20-=20sessao?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sapl/comissoes/forms.py | 1 + sapl/materia/forms.py | 17 +++++------------ sapl/norma/forms.py | 18 +++++------------- sapl/protocoloadm/forms.py | 3 ++- sapl/sessao/forms.py | 30 +++++++++++++++++++++++++++--- 5 files changed, 40 insertions(+), 29 deletions(-) diff --git a/sapl/comissoes/forms.py b/sapl/comissoes/forms.py index ff9e81729..9f7c449f8 100644 --- a/sapl/comissoes/forms.py +++ b/sapl/comissoes/forms.py @@ -1,6 +1,7 @@ import logging from django import forms +from sapl.settings import MAX_DOC_UPLOAD_SIZE from django.contrib.contenttypes.models import ContentType from django.core.exceptions import ValidationError from django.db import transaction diff --git a/sapl/materia/forms.py b/sapl/materia/forms.py index 81b0f1aa0..896617743 100644 --- a/sapl/materia/forms.py +++ b/sapl/materia/forms.py @@ -253,7 +253,7 @@ class MateriaLegislativaForm(FileFieldCheckMixin, ModelForm): if texto_original and texto_original.size > MAX_DOC_UPLOAD_SIZE: raise ValidationError("O arquivo Texto Original deve ser menor que {0:.1f} mb, o tamanho atual desse arquivo é {1:.1f} mb" \ - .format((MAX_DOC_UPLOAD_SIZE/1024)/1024, (arquivo.size/1024)/1024)) + .format((MAX_DOC_UPLOAD_SIZE/1024)/1024, (texto_original.size/1024)/1024)) return cleaned_data @@ -1863,12 +1863,11 @@ class ProposicaoForm(FileFieldCheckMixin, forms.ModelForm): def clean_texto_original(self): texto_original = self.cleaned_data.get('texto_original', False) + if texto_original and texto_original.size > MAX_DOC_UPLOAD_SIZE: - max_size = str(MAX_DOC_UPLOAD_SIZE / (1024 * 1024)) - self.logger.error( - "- Arquivo muito grande. ( > {0}MB )".format(max_size)) - raise ValidationError( - "Arquivo muito grande. ( > {0}MB )".format(max_size)) + raise ValidationError("O arquivo Texto Original deve ser menor que {0:.1f} mb, o tamanho atual desse arquivo é {1:.1f} mb" \ + .format((MAX_DOC_UPLOAD_SIZE/1024)/1024, (texto_original.size/1024)/1024)) + return texto_original def gerar_hash(self, inst, receber_recibo): @@ -1923,12 +1922,6 @@ class ProposicaoForm(FileFieldCheckMixin, forms.ModelForm): .format(tm, am, nm)) cd['materia_de_vinculo'] = materia_de_vinculo - texto_original = self.cleaned_data.get('texto_original', False) - - if texto_original and texto_original.size > MAX_DOC_UPLOAD_SIZE: - raise ValidationError("O arquivo Texto Original deve ser menor que {0:.1f} mb, o tamanho atual desse arquivo é {1:.1f} mb" \ - .format((MAX_DOC_UPLOAD_SIZE/1024)/1024, (arquivo.size/1024)/1024)) - return cd def save(self, commit=True): diff --git a/sapl/norma/forms.py b/sapl/norma/forms.py index ef9fe2213..803cd2751 100644 --- a/sapl/norma/forms.py +++ b/sapl/norma/forms.py @@ -193,25 +193,17 @@ class NormaJuridicaForm(FileFieldCheckMixin, ModelForm): else: cleaned_data['materia'] = None - texto_integral = self.cleaned_data.get('texto_integral', False) - - if texto_integral and texto_integral.size > MAX_DOC_UPLOAD_SIZE: - raise ValidationError("O arquivo Texto Integral deve ser menor que {0:.1f} mb, o tamanho atual desse arquivo é {1:.1f} mb" \ - .format((MAX_DOC_UPLOAD_SIZE/1024)/1024, (arquivo.size/1024)/1024)) - return cleaned_data def clean_texto_integral(self): super(NormaJuridicaForm, self).clean() texto_integral = self.cleaned_data.get('texto_integral', False) + if texto_integral and texto_integral.size > MAX_DOC_UPLOAD_SIZE: - max_size = str(MAX_DOC_UPLOAD_SIZE / (1024 * 1024)) - tam_fornecido = str(texto_integral.size / (1024 * 1024)) - self.logger.error("Arquivo muito grande ({}MB). ( Tamanho máximo permitido: {}MB )".format( - tam_fornecido, max_size)) - raise ValidationError( - "Arquivo muito grande. ( > {0}MB )".format(max_size)) + raise ValidationError("O arquivo Texto Integral deve ser menor que {0:.1f} mb, o tamanho atual desse arquivo é {1:.1f} mb" \ + .format((MAX_DOC_UPLOAD_SIZE/1024)/1024, (texto_integral.size/1024)/1024)) + return texto_integral def save(self, commit=False): @@ -293,7 +285,7 @@ class AnexoNormaJuridicaForm(FileFieldCheckMixin, ModelForm): if anexo_arquivo and anexo_arquivo.size > MAX_DOC_UPLOAD_SIZE: raise ValidationError("O Arquivo Anexo deve ser menor que {0:.1f} mb, o tamanho atual desse arquivo é {1:.1f} mb" \ - .format((MAX_DOC_UPLOAD_SIZE/1024)/1024, (arquivo.size/1024)/1024)) + .format((MAX_DOC_UPLOAD_SIZE/1024)/1024, (anexo_arquivo.size/1024)/1024)) return cleaned_data diff --git a/sapl/protocoloadm/forms.py b/sapl/protocoloadm/forms.py index b3a38206d..d33e70299 100644 --- a/sapl/protocoloadm/forms.py +++ b/sapl/protocoloadm/forms.py @@ -5,6 +5,7 @@ from crispy_forms.bootstrap import InlineRadios, Alert, FormActions from sapl.crispy_layout_mixin import SaplFormHelper from crispy_forms.layout import HTML, Button, Column, Fieldset, Layout, Div, Submit from django import forms +from sapl.settings import MAX_DOC_UPLOAD_SIZE from django.core.exceptions import (MultipleObjectsReturned, ObjectDoesNotExist, ValidationError) from django.db import models, transaction @@ -1160,7 +1161,7 @@ class DocumentoAdministrativoForm(FileFieldCheckMixin, ModelForm): if texto_integral and texto_integral.size > MAX_DOC_UPLOAD_SIZE: raise ValidationError("O arquivo Texto Integral deve ser menor que {0:.1f} mb, o tamanho atual desse arquivo é {1:.1f} mb" \ - .format((MAX_DOC_UPLOAD_SIZE/1024)/1024, (arquivo.size/1024)/1024)) + .format((MAX_DOC_UPLOAD_SIZE/1024)/1024, (texto_integral.size/1024)/1024)) return self.cleaned_data diff --git a/sapl/sessao/forms.py b/sapl/sessao/forms.py index 36167511e..01f0c3636 100644 --- a/sapl/sessao/forms.py +++ b/sapl/sessao/forms.py @@ -156,15 +156,15 @@ class SessaoPlenariaForm(FileFieldCheckMixin, ModelForm): upload_anexo = self.cleaned_data.get('upload_anexo', False) if upload_pauta and upload_pauta.size > MAX_DOC_UPLOAD_SIZE: - raise ValidationError("O arquivo pauta da sessão deve ser menor que {0:.1f} mb, o tamanho atual desse arquivo é {1:.1f} mb" \ + raise ValidationError("O arquivo Pauta da Sessão deve ser menor que {0:.1f} mb, o tamanho atual desse arquivo é {1:.1f} mb" \ .format((MAX_DOC_UPLOAD_SIZE/1024)/1024, (upload_pauta.size/1024)/1024)) if upload_ata and upload_ata.size > MAX_DOC_UPLOAD_SIZE: - raise ValidationError("O arquivo ata da sessão deve ser menor que {0:.1f} mb, o tamanho atual desse arquivo é {1:.1f} mb" \ + raise ValidationError("O arquivo Ata da Sessão deve ser menor que {0:.1f} mb, o tamanho atual desse arquivo é {1:.1f} mb" \ .format((MAX_DOC_UPLOAD_SIZE/1024)/1024, (upload_ata.size/1024)/1024)) if upload_anexo and upload_anexo.size > MAX_DOC_UPLOAD_SIZE: - raise ValidationError("O arquivo anexo da sessão deve ser menor que {0:.1f} mb, o tamanho atual desse arquivo é {1:.1f} mb" \ + raise ValidationError("O arquivo Anexo da Sessão deve ser menor que {0:.1f} mb, o tamanho atual desse arquivo é {1:.1f} mb" \ .format((MAX_DOC_UPLOAD_SIZE/1024)/1024, (upload_anexo.size/1024)/1024)) @@ -675,6 +675,12 @@ class OradorForm(ModelForm): "Já existe orador nesta posição de ordem de pronunciamento" )) + upload_anexo = self.cleaned_data.get('upload_anexo', False) + + if upload_anexo and upload_anexo.size > MAX_DOC_UPLOAD_SIZE: + raise ValidationError("O arquivo Anexo do Orador deve ser menor que {0:.1f} mb, o tamanho atual desse arquivo é {1:.1f} mb" \ + .format((MAX_DOC_UPLOAD_SIZE/1024)/1024, (upload_anexo.size/1024)/1024)) + return self.cleaned_data class Meta: @@ -710,6 +716,12 @@ class OradorExpedienteForm(ModelForm): raise ValidationError(_( 'Já existe orador nesta posição da ordem de pronunciamento')) + upload_anexo = self.cleaned_data.get('upload_anexo', False) + + if upload_anexo and upload_anexo.size > MAX_DOC_UPLOAD_SIZE: + raise ValidationError("O arquivo Anexo do Orador deve ser menor que {0:.1f} mb, o tamanho atual desse arquivo é {1:.1f} mb" \ + .format((MAX_DOC_UPLOAD_SIZE/1024)/1024, (upload_anexo.size/1024)/1024)) + return self.cleaned_data class Meta: @@ -747,6 +759,12 @@ class OradorOrdemDiaForm(ModelForm): "Já existe orador nesta posição de ordem de pronunciamento" )) + upload_anexo = self.cleaned_data.get('upload_anexo', False) + + if upload_anexo and upload_anexo.size > MAX_DOC_UPLOAD_SIZE: + raise ValidationError("O arquivo Anexo do Orador deve ser menor que {0:.1f} mb, o tamanho atual desse arquivo é {1:.1f} mb" \ + .format((MAX_DOC_UPLOAD_SIZE/1024)/1024, (upload_anexo.size/1024)/1024)) + return self.cleaned_data class Meta: @@ -985,6 +1003,12 @@ class JustificativaAusenciaForm(ModelForm): sessao_plenaria = self.instance.sessao_plenaria + upload_anexo = self.cleaned_data.get('upload_anexo', False) + + if upload_anexo and upload_anexo.size > MAX_DOC_UPLOAD_SIZE: + raise ValidationError("O arquivo Anexo de Justificativa deve ser menor que {0:.1f} mb, o tamanho atual desse arquivo é {1:.1f} mb" \ + .format((MAX_DOC_UPLOAD_SIZE/1024)/1024, (upload_anexo.size/1024)/1024)) + if not sessao_plenaria.finalizada or sessao_plenaria.finalizada is None: raise ValidationError( "A sessão deve estar finalizada para registrar uma Ausência")