Normas estandarizacion codificacion RoR e identificadores html¶
Estas normas las copiaremos al acabar el primer borrador al documento DEV_GUIDE del raiz.
Identificadores.¶
Objetivo¶
La idea final, a implementar al ritmo del testing, es identificar todo adecuadamente. Aunque para el testing se pueda resolver de otra forma ('title') resultará mas facil a la larga localizar los elementos a traves de ids.
Por otro lado haciendo caso de las recomendaciones no utilizaremos numeros solos para dichos identificadores http://stackoverflow.com/questions/70579/what-is-a-valid-value-for-id-attributes-in-html#70586 ademas de evitar su repetición http://www.w3.org/TR/html4/struct/global.html#adef-id
Concreciones¶
Para los menus principales:
- Secciones, modelo ejemplo: seccion_admin, seccion_proyectos.
- Controladores, modelos ejemplo: controlador_datos_basicos, controlador_estado.
- Acciones, modelos ejemplo: accion_beneficiarios, accion_etapa.
Para los listados:
- Cabeceras de los listados: cabecera_nombredelatributo. Ejemplos: cabecera_partida, cabecera_moneda.
- El boton añadir: el nombre del controlador y el literal "_anadir", Ejemplo: "proyecto_anadir".
- Que cada fila se llame con el nombre del controlador y un identificador secuencial por cada linea: controlador_linea, Ejemplo: presupuesto_1.
- Los valores de cada fila se llaman con el nombre de la fila seguido de _valor y el nombre del campo, Ejemplo: tarea_1_valor_titulo .
- Los iconos de las acciones de cada linea son: controlador_linea_accion. Ejemplo: proyecto_1_borrar.
- Para confirmar el borrado en la modal la terminologia será: controlador_linea_borrar_confirmar. Ejemplo: proyecto_1_borrar_confirmar
Para los sublistados:
- El identificador del sublistado es controlador_sub_linea. Ejemplo: proyecto_sub_1.
- Cada linea será: controlador_sub_linea_entidad_linea. Ejemplo: proyecto_sub_1_usuario_2.
- El icono de cerrar es: cotrolador_sub_linea_cerrar. Ejemplo: proyecto_sub_1_cerrar.
- El icono de añadir es: controlador_sub_linea_anadir_usuario. Ejemplo: proyecto_sub_1_usuario_anadir.
- Cualquier icono relacionado con una linea del sublistado será: controlador_sub_linea_entidad_linea_accion. Ejemplo: proyecto_sub_1_usuario_2_borrar
- Nombre por defecto de los campos en RoR: entidad_campo. Ejemplos: proyecto_nombre, proyecto_pais.
- Boton: botonguardar.
Para el filtrado:
- selector_filtrado1, selector_filtrado2.
- boton_filtrado.
- filtrado_elegido.
Normas o estandares de codificación o estructura de variables y me¶
AJAX¶
Cuando se abre un formulario vía ajax se hace a través del helper "modal". En este caso la respuesta en el controlador si que será de la forma:
render :partial => "formulario"
En el resto de situaciones utilizamos una respuesta de tipo:
render :update do |page| page.replace_html params[:update], :partial => "usuario/usuarios" page.replace_html 'MB_content', :inline => '<%= mensaje_error(@objeto, :eliminar => true) %><br>' page.call("Modalbox.resizeToContent") end
En estos casos y siguiendo la estructura de IDs presentada en el apartado anterior se especificará el html a remplazar a traves del parametro "update". Este parametro se pasa como parametro de la URL y no como option del link_to_remote. Ejemplo:
<%= link_to_remote(icono("usuarios", _("Ver usuarios asignado")), :url => {:controller => 'usuario', :action => 'usuarios', :id => proyecto, :objeto => "proyecto", :update => "proyecto_sub_" + i.to_s}) %>
Tickets.¶
Este punto quizá habría que sacarlo a otra sección.
Dado que la planificación va a ser trabajada con los usuarios y se ira concretando en el roadmap de las diferentes versiones y sprints de trabajo, es necesario que los tickets asociados sean comprensibles y (especialmente la tareas) guarden la denominacion que se utilice con los usuarios.
Por otro lado es importante diferenciar adecuadamente las tipologías de tickets utilizando:
- Tickets.
- Errores.