Skip to content

Colabora con Modelator!

Chelo Quilón edited this page Aug 11, 2017 · 1 revision

¡¡Colabora en fields!!

  1. Crear/depurar fields
  2. Crear los test para los fields. Se puede realizar el test independientemente de si está creado el field.

¿Qué son los fields?

Rama para trabajar: separanting-fields-code

Se implementan en /lib/fields/

Son los elementos con los que se va a componer el schema. Dicho de otro modo, un schema se compone de fields. Por lo tanto hay que pensar qué tipos de campos de entrada en UX existen: texto, fecha, número,...

Cada field está en un fichero independiente, como puedes ver en el repo.

Actualmente estén realizadas:

  • Text
  • Int
  • Select

Se dan por realizadas cuando tienen los testy está implementado el funcionamiento interno de la misma. Exponemos la lógica que se sigue cada field de los ya realizados:

  • Text. Será un texto, por lo que si se intenta setear (onSet)un valor que no es texto se emite un error. La llamada a la clase text será a sí: new Text({id:'text'}) Esto creará en el schema un tipo texto, cuyo funcionamiento interno, estará definido en la clase. Como se puede observar, se comprueban en este campo las acciones de update e insert.

  • Int. Será un Integer, por lo que si se intenta setear (onSet) un valor que no es texto se emite un error. Llamada: new Int({id:myInt})

  • Select. Aquí es donde hay que dar especial énfasis al UX, la trasversalidad del elemento en la infraestructura y a los test que debe pasar. ¿Cómo puede ser un select?: selector único o selector múltiple

Llamada: new Select({ id:'select', multiple: true, values : ['A','B','C','D'] })

Los test que debería pasar field deberían ser:

    • Si el elemento que llega es uno de los valores permitidos
    • Si no es múltiple, que solo llegue un elemento
    • Si es múltiple, que los elementos que lleguen estén dentro de los permitidos
    • Si se intenta insertar valores duplicados, error.
    • _Está pendiente estudiar si los valores del select pueden ser objetos o arrays... _

Para los elementos que faltan por revisar la implementación y realizar los test, se expone también una propuesta de lógica:

  • Checkbox. Será true o false. Si se intenta setear (onSet) un valor no boolean -> error.
  • Checkboxes. Conjunto de checkbox. Podrá ser múltiple o no. Los valores para cada una de las opciones deberá ser true o false.
  • Img. Estoy hay que estudiarlo porque afecta al sistema de almacenamiento de imágenes.
  • Radios. Conjunto de elementos de los que sólo se puede seleccionar uno.
  • Time. Formato 00-00-0000 ¿otro formato?, el valor que llega tiene que ser tipo fecha

Pendientes sin la implementación inicial, ni lógica:

  • File
  • Video
  • Datetime
  • Timestamp

Cuando vayas a definir una tarea, indícalo y cambia tu nombre en la cabecera del archivo que vayas a implementar.

Clone this wiki locally