Criação de sub-formulários
Criar a capacidade de um formulário conter sub formulários. Sub formulários permitem que um formulário seja feito a partir da composição de formulários existentes, além de inputs excluivos.
Método:
- Modificar a classe Form, adicionando uma lista de SubForms
-
Criar a classe SubForm que representa um sub formulário, essa classe deve conter as seguintes propriedades:
- placement
- form
- extra_description? (ver se é relevante ou não)
- enabled
-
Criar uma tabela no banco que permita a existencia de subForms
- Tabela subForm com as propriedades (id, id_form, placement, content_form, enabled)
-
Modificar controlador de formulário para inserção/atualização/leitura
- Deve ser adicionado um vetor de subForms que contém o id_form do form contido e o placement
- Para a interface ler todos os inputs eles devem realizar multiplas requisições (subForms +1)
- Permitir que o placement seja compartilhado entre subForm e inputs
-
Criar Classe SubFormAnswer que determina que uma resposta de um formulário na realidade é subResposta de um Formulário
- Ao inserir uma resposta, ela será inserida com o id_form do formulário contido
- Isso dará a impressão de que é apenas uma resposta a mais para aquele formulário
- Para diferenciar as respostas dos subForms para as respostas difetas, usa-se a SubFormAnswer
- Criar Tabela no Banco subFormAnswer com as mesmas propriedades de FormAnswer, adcionando content_form
-
Modificar o controlador de resposta, que deverá receber um objeto de resposta mais complexo
- Nesse objeto além das respostas dos inputs "padrão" também deverão vir as respostas dos subForms
- A estrutura provavelmente será
{
inputs: {
"Resposta atual do form" : "values"
}
, subForms: {
"id_sub_form1": {
"resposta do sub_form_1": "Objeto resposta (igual a do inputs)"
}
, "id_sub_form2": {
"resposta do sub_form_2": "Objeto resposta (igual a do inputs)"
}
}
}