Bom dia,
Foram feitas alterações substanciais à validação do tamanho máximo de um documento, que permite ter diferentes tamanhos para diferentes ficheiros. Como estava feito, o tamanho máximo de todos os ficheiros de uma stage, estava refém do último a ser carregado que guardava o tamanho em sessão e o mesmo era depois tratado antes de sequer ser submetido. Esta verificação era feita pelo CHAL e tinha várias limitações.
Até aqui não foi um problema porque não houve necessidade de ter tamanhos diferentes, especialmente que fossem superiores ao limite estabelecido nas configurações do Presentation.
Foi adicionado para qualquer parâmetro de documento uma constraint automática com base no valor máximo definido nas configurações do Presentation. A tag fileUploadField passa a ir buscar ao parâmetro o maxFileSize e não ao atributo da mesma. O atributo deixou de existir na tag.
Exemplo de constraint diferente da default:
@Parameter(linkToForm = "importFileForm", constraints = "required,maxfilesize=1000000")
protected DocumentRepositoryEntry fileToImport;
Para além disto, em qualquer submit onde o documento seja adicionado diretamente ao documento repository e não faça uso da annotation @addDocumentToRepository, tem que ter a verificação de existem erros no parameterErrors. É uma 2ª proteção, que em princípio o javascript da constraint não deixará chegar a esse ponto, mas necessária.
Segue o exemplo:
if (!this.parameterErrors.hasErrors())
{
Processo processo = Processo.getDataSetInstance().get(this.getProcessID().toString());
Curso curso = HibernateUtil.getOrLazyLoad(processo.getCurso());
if (this.estagioFormacaoFormIdMecanismoAvaliacao != null)
{
curso.setIdMecanismoAvaliacao(this.estagioFormacaoFormIdMecanismoAvaliacao.getId());
}
if (this.estagioFormacaoFormIdPlanoDistribuicao != null)
{
curso.setIdPlanoDistribuicao(this.estagioFormacaoFormIdPlanoDistribuicao.getId());
}
.....