diff --git a/sapl/comissoes/forms.py b/sapl/comissoes/forms.py index 48552565f..da4c57b5d 100644 --- a/sapl/comissoes/forms.py +++ b/sapl/comissoes/forms.py @@ -514,10 +514,16 @@ class DocumentoAcessorioCreateForm(FileFieldCheckMixin, forms.ModelForm): if not self.is_valid(): return self.cleaned_data - arquivo = self.cleaned_data.get('arquivo', False) + arquivo = self.cleaned_data.get('arquivo') if arquivo: validar_arquivo(arquivo, "Texto Integral") + else: + ## TODO: definir arquivo no form e preservar o nome do campo + ## que gerou a mensagem de erro. + ## arquivo = forms.FileField(required=True, label="Texto Integral") + nome_arquivo = self.fields['arquivo'].label + raise ValidationError(f'Favor anexar arquivo em {nome_arquivo}') return self.cleaned_data @@ -540,9 +546,15 @@ class DocumentoAcessorioEditForm(FileFieldCheckMixin, forms.ModelForm): if not self.is_valid(): return self.cleaned_data - arquivo = self.cleaned_data.get('arquivo', False) + arquivo = self.cleaned_data.get('arquivo') if arquivo: validar_arquivo(arquivo, "Texto Integral") + else: + ## TODO: definir arquivo no form e preservar o nome do campo + ## que gerou a mensagem de erro. + ## arquivo = forms.FileField(required=True, label="Texto Integral") + nome_arquivo = self.fields['arquivo'].label + raise ValidationError(f'Favor anexar arquivo em {nome_arquivo}') return self.cleaned_data diff --git a/sapl/materia/forms.py b/sapl/materia/forms.py index ec385ffe8..856e7fa13 100644 --- a/sapl/materia/forms.py +++ b/sapl/materia/forms.py @@ -343,10 +343,16 @@ class DocumentoAcessorioForm(FileFieldCheckMixin, ModelForm): if not self.is_valid(): return self.cleaned_data - arquivo = self.cleaned_data.get('arquivo', False) + arquivo = self.cleaned_data.get('arquivo') if arquivo: validar_arquivo(arquivo, "Texto Integral") + else: + ## TODO: definir arquivo no form e preservar o nome do campo + ## que gerou a mensagem de erro. + ## arquivo = forms.FileField(required=True, label="Texto Integral") + nome_arquivo = self.fields['arquivo'].label + raise ValidationError(f'Favor anexar arquivo em {nome_arquivo}') return self.cleaned_data diff --git a/sapl/materia/tests/test_materia.py b/sapl/materia/tests/test_materia.py index be6d697cb..99e372149 100644 --- a/sapl/materia/tests/test_materia.py +++ b/sapl/materia/tests/test_materia.py @@ -324,6 +324,10 @@ def test_documento_acessorio_submit(admin_client): tipo = baker.make(TipoDocumento, descricao='Teste') + arquivo = SimpleUploadedFile("file.pdf", + b'conteudo do arquivo', + content_type="application/pdf") + # Testa POST response = admin_client.post(reverse( 'sapl.materia:documentoacessorio_create', @@ -332,6 +336,7 @@ def test_documento_acessorio_submit(admin_client): 'nome': 'teste_nome', 'data_materia': '2016-03-21', 'autor': autor, + 'arquivo': arquivo, 'ementa': 'teste_ementa', 'data': '2016-03-21', 'salvar': 'salvar'}, diff --git a/sapl/protocoloadm/forms.py b/sapl/protocoloadm/forms.py index 0441c454f..2e8df41e3 100644 --- a/sapl/protocoloadm/forms.py +++ b/sapl/protocoloadm/forms.py @@ -641,10 +641,16 @@ class DocumentoAcessorioAdministrativoForm(FileFieldCheckMixin, ModelForm): if not self.is_valid(): return self.cleaned_data - arquivo = self.cleaned_data.get('arquivo', False) + arquivo = self.cleaned_data.get('arquivo') if arquivo: validar_arquivo(arquivo, "Arquivo") + else: + ## TODO: definir arquivo no form e preservar o nome do campo + ## que gerou a mensagem de erro. + ## arquivo = forms.FileField(required=True, label="Texto Integral") + nome_arquivo = self.fields['arquivo'].label + raise ValidationError(f'Favor anexar arquivo em {nome_arquivo}') return self.cleaned_data @@ -1175,10 +1181,17 @@ class DocumentoAdministrativoForm(FileFieldCheckMixin, ModelForm): ' documento vinculado' % (numero_protocolo, ano_protocolo))) - texto_integral = self.cleaned_data.get('texto_integral', False) + texto_integral = self.cleaned_data.get('texto_integral') if texto_integral: validar_arquivo(texto_integral, "Texto Integral") + else: + ## TODO: definir arquivo no form e preservar o nome do campo + ## que gerou a mensagem de erro. + ## texto_integral = forms.FileField(required=True, label="Texto Integral") + nome_arquivo = self.fields['texto_integral'].label + raise ValidationError(f'Favor anexar arquivo em {nome_arquivo}') + return self.cleaned_data