Motor Mr519Gen para crear formularios y ayudar a aplicarlos
Este motor Mr519Gen permite crear formularios y ayudar a aplicarlos
1. Aspectos metodológicos
Para ayudar a caracterizar los instrumentos para recolectar información:
Aspecto | Algunas posibilidades |
---|---|
1. Tipo de instrumento | (a) Encuesta/Cuestionario, (b) Entrevista/Caracterización, (c) Grupo focal |
2. Nombre del instrumento | |
3. ¿A quién va dirigido? (fuente de información) | (a) Usuarios del sistema o un grupo, (b) Beneficiarios de un proyecto, (c) Contactos con actores sociales |
4. ¿Quién sistematiza? | (a) Cada usuario, (b) Un usuario, (c) Personas sin usuario y clave en sistema, (d) Beneficiarios de un proyecto con usuario y clave temporal a instrumento(s) de sistematización |
5. ¿Qué sistematiza y con qué validaciones automáticas? | |
6. ¿Se recolectan datos personales? (en caso afirmativo mensaje de protección de datos personales por usar) | |
7. ¿Vigencia para sistematizar? | Fecha inicio, fecha fin |
8. ¿Cómo sistematiza? | (a) Ingresa al sistema y desde cierta ubicación en el mismo, (b) Recibe URL por correo, (c) |
9. ¿Quién revisa/verifica? | |
10. ¿Qué revisa/verifica? | |
11. ¿Cómo revisar/verifica? | |
12. ¿A quién y cómo informar problemas? | |
13. ¿Quién corrige? | |
14. ¿Cómo corrige? | |
15. ¿Qué se hace con la información recolectada? | (a) Aportar a la medición de indicadores, (b) generar tabla |
2. Aspectos técnicos
Aplican practicamente las mismas instrucciones de otros motores genéricos basados en msip, ver por ejemplo: https://github.com/pasosdeJesus/sal7711_gen
Para incluirlo en su aplicación rails que ya usa msip, tenga en cuenta que deben incluirse CSS y Javascript sin módulos servidos por sprockets y además otro Javascript con módulos servido por Webpacker y paquetes manejados por yarn.
- Agregue las gemas necesarias en Gemfile:
gem 'mr519_gen', git: 'https://github.com/pasosdeJesus/mr519_gen.git'
- Agregue los paquetes npm típicos requeridos por
msip
(ver https://github.com/pasosdeJesus/msip/blob/master/doc/iniciar-si-usando-msip.md) y además:CXX=c++ yarn add gridstack CXX=c++ yarn install
- Asegure que en su archivo
app/javascript/packs/application.js
incluyejquery
,jquery-ui
y dejquery-ui
que incluyeui/data
yui/focusable
. Es decir puede ser algo como: ``` require("@rails/ujs").start() require("turbolinks").start()
import jQuery from "jquery";
import "popper.js" import "bootstrap" import 'jquery-ui' import 'jquery-ui/ui/widgets/autocomplete' import 'jquery-ui/ui/data' import 'jquery-ui/ui/focusable'
4. Incluya el motor javascript en su app/assets/javascript/application.js
por ejemplo después de ```//= require msip/motor``` agregue:
//= require mr519_gen/motor
y despúes de ```msip_prepara_eventos_comunes...``` agregue:
mr519_gen_prepara_eventos_comunes(root);
5. Incluya los CSS de mr519 agregando en `app/assets/stylesheets/application.css` la línea:
*= require mr519_gen/application.css
6. Configure su aplicación para enlazar al gestor de formularios
con rutas como `mr519_gen.formularios_path`
7. Configure enlaces a encuestas a usuarios por ejemplo con rutas como
`mr519_gen.encuestasusuario_path`
## 3. Desarrollo
Para un nuevo tipo de campo.
1. Agreguelo en `app/helpers/mr519_gen/application_helper.rb` como una constante (sin repetir número) y la constante agregela al arreglo `TIPOS_CAMPO`
2. Si la especificación del campo requiere información adicional modificar
`app/views/mr519_gen/formularios/_campo_campos.html.erb` (eventualmente junto
con el controlador `app/controllers/mr519_gen/formularios_controller.rb`)
3. Agregar como lo verá quien llene la encuesta en `app/views/mr519_gen/formularios/_campodinamico.html.erb`. Para almacenar la información la tabla `mr519_gen_valorcampo` tiene 2 campos: `valor` (cadena de 5000) y `valorjson` (campo
json).
4. Puede usar un atributo virtual (como valor_ids) que convierta el parámetro
que produzca el campo al valor por guardar en la base de datos.