Skip to content

Para crear formularios y ayudar a aplicarlos. Espejo de https://gitlab.com/pasosdeJesus/mr519_gen

License

Notifications You must be signed in to change notification settings

pasosdeJesus/mr519_gen

Repository files navigation

Motor Mr519Gen para crear formularios y ayudar a aplicarlos

Revisado por Hound Pruebas y seguridad: Estado Construcción Clima del Código Cobertura de Pruebas

Logo de mr519_gen

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.

  1. Agregue las gemas necesarias en Gemfile:
	gem 'mr519_gen', git: 'https://github.com/pasosdeJesus/mr519_gen.git'
  1. 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
  1. Asegure que en su archivo app/javascript/packs/application.js incluye jquery, jquery-ui y de jquery-ui que incluye ui/data y ui/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'
  1. 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);
  1. Incluya los CSS de mr519 agregando en app/assets/stylesheets/application.css la línea:
 *= require mr519_gen/application.css
  1. Configure su aplicación para enlazar al gestor de formularios con rutas como mr519_gen.formularios_path

  2. 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.