Proyecto

General

Perfil

Fechas

Hay 3 helper de fecha calendario_fecha (para seleccionar día, mes y año), mes_fecha para seleccionar mes y año, y ejercicio_fecha para seleccionar solamente el año.

En calendario fecha:

Se crea un campo "hidden" que tendrá el objeto y el atributo con los nombres tal que la fecha irá directamente en el update del objeto. El calendario manda un parametro "fecha[atributo] que no se usará. Eso permite diferenciar el campo del calendario que será formateado con el formato dd/mm/YYYY y el campo "hidden" sea formateado con el formato yyyy-mm-dd apta para la base de datos.

Se crea un javascript_tag para recojer el valor del campo "hidden" que como esta nombrado según "objeto"/"atributo" recibe el valor de la fecha en la base de datos si estuve asignada. Este valor esta mandado en el campo de texto del calendario en el formato esperado por el usuario.

En el javascript de :after_close si el atributo es fecha_fin y si hay en la misma pagina un selector con el atributo a fecha_inicio se manda una alerta al usuario si fecha_inicio es superior a fecha_fin (solamente un aviso).
NB. se utiliza value.match(/\d+/g) para obtener un array con el día el mes y el año porque el escape del caracterio "/" usado como separador entre dia, mes y año funciona mal en los pattern de javascript.

En el javascript de :onchange
  1. seleccionar día, mes y año (si hay en la misma pagina feche_inicio y fecha_fin, a cerrar el calendario para fecha_fin se alerta si fecha_inicio > fecha_fin)

En mes_fecha :

Hay que señalar que el helper date_select (con otros[:discard_day]) resulta en 2 select con id "atributo"_2i para el mes y "atributo"_1i para el año.
Utilizamos un campo "hidden" como para el helper calendario_fecha con el mismo proposito (almacenar la forma db de la fecha)

Volver a Cuestiones_Tecnicas