Proyecto

General

Perfil

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
Para los formularios.
  • 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.