Browse Source

3365 filefield obrigatorio (#3368)

* Exige arquivo em doc acessório

* Fixes #3365

* fix tests

Co-authored-by: eribeiro <edwardr@senado.leg.br>
pull/3372/head
Edward 4 years ago
committed by GitHub
parent
commit
a56a62baa4
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 16
      sapl/comissoes/forms.py
  2. 8
      sapl/materia/forms.py
  3. 5
      sapl/materia/tests/test_materia.py
  4. 17
      sapl/protocoloadm/forms.py

16
sapl/comissoes/forms.py

@ -514,10 +514,16 @@ class DocumentoAcessorioCreateForm(FileFieldCheckMixin, forms.ModelForm):
if not self.is_valid(): if not self.is_valid():
return self.cleaned_data return self.cleaned_data
arquivo = self.cleaned_data.get('arquivo', False) arquivo = self.cleaned_data.get('arquivo')
if arquivo: if arquivo:
validar_arquivo(arquivo, "Texto Integral") 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 return self.cleaned_data
@ -540,9 +546,15 @@ class DocumentoAcessorioEditForm(FileFieldCheckMixin, forms.ModelForm):
if not self.is_valid(): if not self.is_valid():
return self.cleaned_data return self.cleaned_data
arquivo = self.cleaned_data.get('arquivo', False) arquivo = self.cleaned_data.get('arquivo')
if arquivo: if arquivo:
validar_arquivo(arquivo, "Texto Integral") 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 return self.cleaned_data

8
sapl/materia/forms.py

@ -343,10 +343,16 @@ class DocumentoAcessorioForm(FileFieldCheckMixin, ModelForm):
if not self.is_valid(): if not self.is_valid():
return self.cleaned_data return self.cleaned_data
arquivo = self.cleaned_data.get('arquivo', False) arquivo = self.cleaned_data.get('arquivo')
if arquivo: if arquivo:
validar_arquivo(arquivo, "Texto Integral") 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 return self.cleaned_data

5
sapl/materia/tests/test_materia.py

@ -324,6 +324,10 @@ def test_documento_acessorio_submit(admin_client):
tipo = baker.make(TipoDocumento, tipo = baker.make(TipoDocumento,
descricao='Teste') descricao='Teste')
arquivo = SimpleUploadedFile("file.pdf",
b'conteudo do arquivo',
content_type="application/pdf")
# Testa POST # Testa POST
response = admin_client.post(reverse( response = admin_client.post(reverse(
'sapl.materia:documentoacessorio_create', 'sapl.materia:documentoacessorio_create',
@ -332,6 +336,7 @@ def test_documento_acessorio_submit(admin_client):
'nome': 'teste_nome', 'nome': 'teste_nome',
'data_materia': '2016-03-21', 'data_materia': '2016-03-21',
'autor': autor, 'autor': autor,
'arquivo': arquivo,
'ementa': 'teste_ementa', 'ementa': 'teste_ementa',
'data': '2016-03-21', 'data': '2016-03-21',
'salvar': 'salvar'}, 'salvar': 'salvar'},

17
sapl/protocoloadm/forms.py

@ -641,10 +641,16 @@ class DocumentoAcessorioAdministrativoForm(FileFieldCheckMixin, ModelForm):
if not self.is_valid(): if not self.is_valid():
return self.cleaned_data return self.cleaned_data
arquivo = self.cleaned_data.get('arquivo', False) arquivo = self.cleaned_data.get('arquivo')
if arquivo: if arquivo:
validar_arquivo(arquivo, "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 return self.cleaned_data
@ -1175,10 +1181,17 @@ class DocumentoAdministrativoForm(FileFieldCheckMixin, ModelForm):
' documento vinculado' ' documento vinculado'
% (numero_protocolo, ano_protocolo))) % (numero_protocolo, ano_protocolo)))
texto_integral = self.cleaned_data.get('texto_integral', False) texto_integral = self.cleaned_data.get('texto_integral')
if texto_integral: if texto_integral:
validar_arquivo(texto_integral, "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 return self.cleaned_data

Loading…
Cancel
Save