Egroupware 1.8 – Calendario – Android

Un cliente que utiliza egroupware como su herramienta colaborativa quería ver su calendario en sus dispositivos moviles y poder ver sus reuniones, citas y recordarle en que momento tenia sus actividades, para lo que se le hizo el analisis de que es con lo que contaba y que es lo que necesitaba.

 

Contaba con el egroupware 1.4 en un  linux SUSE Linux Enterprise Server 10 Sp1, por lo que se le hizo el siguiente trabajo:

  • Actualización del egroupware 1.4 al 1.8, que resolvía algunos problemas de calendario con los que contaba esta versión con respecto al calendario.
  • En algun manual que ya no se recuerda cual era decía que la forma más fácil era hacer el compilado completo, con rpm o su similar en SUSE, que creo que se llama yast2 , pero esto no era una buena alternativa ya que daba problemas con algunas dependencias, aunque decía que resolvía todas las dependencias que existiera.
  • Entonces se decidió realizar paso a paso la actualización:
  1. Primero descargar la versión 1.8 de Egroupware.
  2. Se me olvidaba este egroupware es la versión comunitaria.
  3. Actualizar la versión del PHP, tenía la 5.1 y para esta versión se recomienda la 5.2 para arriba, se le instaló la versión 5.3
  4. El egroupware iba a utilizar mysql, entonces se debió instalar las dependencias del mysql con el php, que por defecto casi siempre vienen.
  5. Al ir revisando la instalación nos dimos cuenta que habían algunos errores, principalmente en algunas librerias del php, o extensiones como las llama el php.
  6. Es necesaria la instalación del pear 
  7. No se instaló las extensiones de Oracle ni el tnef, que este ultimo era complicado por la versión del linux y por la version del php.

Bueno parecía fácil pero nos comenzó a dar problemas cuando se quizo actualizar las aplicaciones del egroupware que vienen por defecto, principalmente con las que dependía de las extensiones del php. las que dieron mas problemas fue justamente el calendario .

El problema con el calendario era que cada vez que queriamos agregar una nueva actividad mandaba un error, revisamos el log y decía que no podia guardar la información por falta de una tabla.

Luego de casi 3 o 4 días leyendo cual era el problema y dandole vuelta al asunto ya que no habia mucha información sobre esto nos dimos cuenta de lo siguiente:

  1. Al parecer el cliente ya habia solicitado a alguien más hacer la actualización hace 3 o 4 años atrás, por lo que ciertas tablas ya estaban actualizadas a la versión 1.6, algo que nos dimos cuenta luego de revisar que nos enviaba a otra versión cada vez que probabamos el egroupware.
  2. En algún blog se leyó que era fácil resolver este problema que la única diferencia entre el 1.6 y el 1.8 era que no contenía una tabla de las diferentes zonas horarias que existen en el mundo, para resolver el problema del calendario.
  3. Se creo la tabla con los datos, se actualizó el calendario… y funcionó
  4. Todo parecía bien, hasta que ingresamos a a revisar el calendario, a ingresar una actividad y ya no enviaba el mensaje de error, lo que hacia era no guardar la actividad.
  5. Revisamos el log del apache2 y nos dimos cuenta que el problema era un conflicto entre el pdo_sqlite y el pdo_sqlite3.
  6. Por lo que decidimos quitarlo de las extensiones (pdo_sqlite y pdo_sqlite3) no sabiamos cual era el que daba el problema. Pero aqui otro problema, el php de SUSE, no se si en otras distribuciones lo haga así o se lo configuró así de antemano, no carga las extensiones dentro del archivo php.ini, lo que hace es leer un directorio dentro del php5 que creo que se llama config, y va leyendo poco a poco los archivos que se encuentran ahí y va cargando las extensiones que se encuentren.
  7. Reiniciar apache2 … y listo funcionó

Hasta aquí lo único que se hizo fue actualizar la versión del egroupware lo que el cliente ha pedido todavía no se acerca a lo que habiamos hecho y ya llevabamos una semana de trabajo, para bien o para mal fue una semana que en Ecuador hubo 2 dias de vacaciones.

Seguimos, con las pruebas, funcionó correctamente, y comenzamos a buscar la herramienta que nos permita sincronizar las tareas con un dispositivo movil, en este caso todos utilizaban un tableta o celular con android,

  1. buscamos en google play cual nos permitía la sincronización con el calendario, comenzamos con la gratuita, todos nos sincronizaban, la falla era que sincronizaba las tareas todo el día y no por hora, así que no funcionó.
  2. Nos fuimos por la pagada CalDav  costó algo menos de 3 dólares por usuario (aca en Ecuador nos cobran 5% de lo que compramos afuera, aunque escuché que son para valores mayores a $ 1000 (DOLARES) no estoy seguro, pero igual me cobran ese porcentaje por cada compra que haga afuera).
  3. Y listo ?? parecía que funcionaba, hasta que nos dimos cuenta de otra cosa.
  4. Al parecer el que anteriormente le instalo el egroupware dejó todas TimeZone por defecto, el php estaba sin TimeZone, el egroupware igual, por lo que cuando se creaba una actividad, en la tableta o en el celular aparecía 5 horas menos de lo que se colocaba en el calendario del egroupware.
  5. Listo pensamos que solo era actualizar todas las zonas, colocarlas uniformemente y ya …
  6. Otro error, se las sincronizó todo (Tiempo del Servidor – Hardware, Tiempo del Php – Software , Tiempo del Egroupware – Aplicación), el tiempo del egroupware puede ser manejado por usuario, también se forzó a que todas manejen el mismo tiempo.
  7. Eso provocó un problema, que las tareas anteriores se vean con -5 horas.
  8. Y ahora si ??? funcionó … pues NO otra vez. ..
  9. Revisando … revisando el pdo_sqlite tenia que funcionar, así que se reactivó solo una extensión el pdo_sqlite3, y listo a hacer la presentación.

Antes de la presentación, el técnico de nuestro cliente nos pidió que la sincronización se pueda hacer de 2 vías es decir, crear una actividad en el calendario del egroupware y se vea en el calendario del celular o tableta y crear desde la tableta y que se vea en el calendario del egroupware, esta aplicación CalDav, lo permite hasta ahora, pero en sus características dice Beta, espero no de problemas.

Y lo segundo antes de la presentación, es que necesitaban que cuando sea desde el celular al egroupware se pueda invitar a personas que son parte del dominio (me olvidaba esta parte, el egroupware lo hicimos funcionar con el LDAP) de la empresa.

Por lo que utilizamos el CardDav para sincronizar los contactos de los usuarios, pero no significaba que iba a agregar a los usuarios del LDAP, por lo que tuvieron que crearlos una vez y de ahí replicarlos al resto de usuarios, para que puedan hacer invitaciones a actividades a otros usuarios.

Este es mi primera entrada a mi blog, espero les sirva..