sábado, 15 de noviembre de 2014

Integración Odoo y Google Calendar

¡Jefe, la reunión del Comité de Ventas a la que me citó se cruza con la presentación del portafolio de servicios al cliente que venimos gestionando desde hace algunas semanas.  Por favor deme instrucciones al respecto!
"Si en su organización son comunes este tipo de comunicaciones, esta publicación puede resultarle útil".

En organizaciones de tamaño medio y grande, en las que se tiene una división del trabajo por áreas de responsabilidad, es habitual que los líderes de cada área programen reuniones internas a las que invitan a miembros de su equipo de trabajo y/o a los líderes de otras áreas, bien para alinear al equipo frente a los objetivos de la organización, para evaluar los resultados alcanzados, para compartir políticas institucionales o para cualquier otro asunto de interés.

Antes de programar una reunión es necesario verificar la disponibilidad de tiempo de los invitados y asegurarse de que la convocatoria no interfiera en sus actividades, por lo menos, que no afecte asuntos que deben ser atendidos de manera prioritaria. 

Cuando no se planifican de forma correcta las reuniones se pueden presentar problemas de coordinación, como la citación a un miembro del equipo a dos reuniones diferentes en la misma fecha y hora, o la citación a una reunión interna a personas de la organización que en ese momento deben atender asuntos de mayor prioridad, como presentar una producto o informe a un cliente importante.

Para evitar este tipo de situaciones las organizaciones suelen usar herramientas tecnológicas orientadas a realizar una gestión eficiente de las comunicaciones internas, entre ellas se destacan las soluciones provistas por Google, tales como el correo electrónico y el calendario.

El escenario descrito ha significado para los miembros de las organizaciones tener que habituarse al uso simultáneo, pero separado, de las herramientas de comunicación interna y los sistemas de apoyo a la gestión empresarial o soluciones ERP.  Lo anterior puede impactar de manera negativa la productividad y eficiencia del equipo de trabajo y, en algunos casos, dar paso al surgimiento de problemas de coordinación debido a que podrían programarse actividades en el ERP que no son registradas en Google Calendar, o viceversa.

Una de las características más interesantes de Odoo, aunque no siempre valorada en su real dimensión, es precisamente la capacidad de gestionar las comunicaciones internas y externas de manera nativa, esto es, la capacidad de ofrecer en un único entorno de trabajo las herramientas de comunicación completamente integradas a las aplicaciones de negocio.  Una de las funcionalidades que hacen parte de este concepto es la integración y sincronización de Odoo con Google Calendar.

Veamos cómo hacerlo:

Activar Calendar en Google API


El primer paso consiste en activar Calendar API en la consola para desarrolladores de Google: https://console.developers.google.com/project.  

Ingresamos al proyecto que creamos según las instrucciones de la publicación anterior  "Integración Odoo & Google OAuth".  Una vez dentro buscamos en el menú lateral la opción "APIs y autenticación - APIs".  Veremos dos secciones en el área de trabajo: "APIs  habilitadas" y "Navegar por las API".  Vamos a la segunda, buscamos "Calendar API" y damos clic en ella.


Se mostrará una pantalla en la que se indica que la API se encuentra desactivada, damos clic en el ícono de activación y luego aceptamos las "Condiciones de servicio de Google APIs".


Después de este procedimiento podemos verificar en "APIs y autenticación - APIs" que "Calendar API" se encuentre en la sección "APIs  habilitadas".

Agregar URI de redireccionamiento en Google API


Buscamos en el menú lateral la opción "APIs y autenticación - Credenciales", clic en "Editar la configuración" y agregar la siguiente URI:

http://www.example.com/google_account/authentication

(cambiar www.example.com por su dominio).


Habilitar Google Calendar en Odoo


Para habilitar Google Calendar en Odoo vamos a Configuración / Configuración / Configuraciones generales y colocamos los valores de ID DE CLIENTE y SECRETO DE CLIENTE que tenemos en nuestra API de Google.  Aplicamos cambios y listo.



Sincronizar Calendarios Odoo y Google Calendar


La integración entre Odoo y Google Calendar nos permite realizar sincronizaciones bidireccionales, de esa forma podemos gestionar de forma eficaz y eficiente las reuniones internas y externas planificadas por la organización.

Para realizar la sincronización vamos a Mensajería / Organizador / Calendario, veremos el botón "Sincronizar con Google" y debajo de este, las opciones para seleccionar los usuarios sobre los cuales deseamos consultar su "agenda".


¡Eso es todo, hasta la próxima!


lunes, 10 de noviembre de 2014

Integración Odoo & Google OAuth


En nuestra publicación anterior explicamos como hacer la instalación de Odoo en Ubuntu 14.04, ahora es el turno de explorar el conjunto de posibilidades que nos ofrece esta solución y por qué no comenzar con las opciones de integración entre Odoo y las herramientas de Google.  

La primera de ellas es habilitar la posibilidad de que los usuarios de Odoo puedan acceder utilizando sus cuentas de Google.  Esta funcionalidad puede ser de gran valor en aquellas organizaciones que utilizan Google Apps for Work dado que le ahorrará a sus miembros la tarea de tener que recordar un nombre de usuario y una contraseña más.  Además, si se combina con la funcionalidad "Permitir ingreso a usuarios externos", Odoo se encargará de traer los datos del usuario desde Google facilitando así el proceso de creación de usuarios a los administradores de Odoo.

Habilitando autenticación externa


El primer paso consiste en habilitar la funcionalidad en Odoo, para ello vamos a Configuración / Configuración / Configuraciones generales y marcamos la casilla "Authentication -- Usar autenticación externa, firmar con google, facebook, ....":


Una vez aplicados los cambios se mostrará una nueva opción en el menú lateral "Usuarios" denominada "Proveedores OAuth"


La vista tipo lista muestra tres opciones de autenticación, clic en "Google OAuth2" para ver la vista tipo formulario:


Para activar la autenticación con cuentas de Google se debe marcar la casilla "Permitido", pero antes es necesario ingresar el "ID de cliente".  Para usuarios de habla hispana es recomendable cambiar el "Cuerpo del mensaje" por "Acceder con google".  

En los párrafos siguientes explicaremos cómo obtener el ID de cliente.


Obtener ID desde Google Developers Console


Para obtener el "ID de cliente" es necesario acceder con una cuenta de Google a su consola para desarrolladores: https://console.developers.google.com/project. En el primer acceso el sitio mostrará la opción para crear un nuevo proyecto: 


Para la creación de un nuevo proyecto es necesario asignarle un nombre, un ID y aceptar los términos del servicio:


Luego, desde el menú lateral "Credencials" se podrá crear el ID del cliente:


Al presionar "Create new Client ID" se mostrará el formulario para configurar la pantalla de autorización que le aparecerá al usuario la primera vez que intente acceder a Odoo con su cuenta de Google.  Se deben diligenciar como mínimo los campos "EMAIL ADDRESS" y "PRODUCT NAME": 


Después, se muestra un nuevo formulario en el que se debe indicar el tipo de aplicación que usará la opción de autenticación con cuentas de Google, se selecciona la opción "Web application".  

El paso siguiente es indicar la URI a la que será redirigido el usuario, aquí es importante asegurarse de que la URI sea http://www.example.com/auth_oauth/signin (cambiar www.example.com por su dominio):


Al guardar los cambios se habrá generado el "CLIENT ID":


Copiar CLIENT ID en el formulario de Odoo Google OAuth2


De regreso a Odoo, se copia el código obtenido en el paso anterior, en el campo "Id. de cliente"

Crear usuario en Odoo


Terminada la configuración, el procedimiento a seguir es crear usuarios en Odoo y enviarles la invitación a través de la opción "Send an Invitation Email" (si es que Odoo no lo hace de forma automática):

Nótese que el formulario de usuario tiene una nueva pestaña denominada "Oauth" y que los campos están vacíos:  


El usuario recibirá la invitación en su correo electrónico con las instrucciones para habilitar su usuario en Odoo:


Al hacer clic en "Aceptar invitación de ..." será redirigido a la pantalla de consentimiento:


Después de aceptar, el usuario habrá accedido a Odoo y verá las opciones que el administrador del sistema le haya habilitado, si no le ha definido roles entonces verá solo las opciones de comunicación básica o "Red Social":


Después del primer acceso del usuario, Odoo habrá obtenido y almacenado las credenciales de autenticación, esto se puede verificar en la pestaña "Oauth" del respectivo usuario:


A partir de ese momento el usuario podrá acceder a Odoo con su cuenta de Google seleccionando la base de datos y dando clic en la opción "Acceder con google":


--------------------------------------------------------

sábado, 1 de noviembre de 2014

Instalar Odoo 8 en Ubuntu 14.04 LTS

¡Hemos regresado! 

Esta vez para compartir con la comunidad de habla hispana una completa guía de instalación de Odoo 8.0.

Créditos: Esta entrada está basada en la publicación "How to Install OpenERP Odoo 8 on Ubuntu Server 14.04 LTS", del blog "The Open Sourcerer", la cual está amparada con licencia "Creative Commons Attribution-Share Alike 3.0".  Agradecemos al autor el permitirnos a través de esta licencia realizar una obra derivada.

Paso 1: Crear un usuario del sistema para ejecutar Odoo


Lo primero que haremos es crear un usuario del sistema.  En Ubuntu un usuario del sistema es diferente a un usuario normal, por lo tanto no aparecerá en las opciones de acceso (login) cuando se arranque el sistema, ni podrá usarse en la terminal o consola.

El objetivo en este paso es tener un usuario del sistema que ejecute Odoo, para ello le asignamos el directorio en el que instalaremos luego Odoo, en este caso /opt/odoo, si no existe el directorio este será creado automáticamente.  En el caso de que decida utilizar un directorio diferente tenga en cuenta que deberá ajustar algunas instrucciones de esta guía para que se adapten a su propio contexto

sudo adduser --system --home=/opt/odoo --group odoo

Paso 2: Instalar y configurar el servidor de base de datos PostgreSQL


Instalamos PostgreSQL con el siguiente comando:

sudo apt-get install postgresql

Pasamos a trabajar con el usuario postgres para tener los privilegios necesarios para configurar la base de datos:

sudo su - postgres

Creamos un nuevo usuario de la base de datos.  Este será el usuario que asignaremos en la configuración de conexión a la base de datos del servidor Odoo, tendrá permisos para crear y borrar.

En este paso deberá asignar una contraseña, no la olvide, la necesitará más adelante:

createuser --createdb --username postgres --no-createrole --no-superuser --pwprompt odoo

El sistema le pedirá que asigne una contraseña:

Enter password for new role: ********

Y luego que la confirme:

Enter it again: ********

Finalmente salimos del usuario postgres:

exit

Paso 3: Instalar librerías Python requeridas por el servidor Odoo 


Con el siguiente comando instalamos todas las librerías necesarias (dependencias) para el correcto funcionamiento del servidor Odoo:


En este punto debemos seguir un procedimiento especial para obtener e instalar la versión adecuada de la librería wkhtmltopdf.

Ejecute estos cuatro pasos en la terminal:

sudo wget http://jaist.dl.sourceforge.net/project/wkhtmltopdf/0.12.1/wkhtmltox-0.12.1_linux-trusty-amd64.deb

sudo dpkg -i wkhtmltox-0.12.1_linux-trusty-amd64.deb

sudo cp /usr/local/bin/wkhtmltopdf /usr/bin

sudo cp /usr/local/bin/wkhtmltoimage /usr/bin


Paso 4: Instalar el servidor Odoo 


Obtenemos las fuentes de Odoo desde su página de descargas:

https://www.odoo.com/page/download

Seleccionamos las opciones: Platform Sources y Version Odoo 8



Se descargará un archivo llamado odoo_8.0-latest.tar.gz, lo descomprimimos y cambiamos el nombre de la carpeta que nos crea por server

Para instalarlo cambiamos el usuario en consola por el que creamos en el Paso 1 y copiamos la carpeta server en el directorio /opt/odoo.

Para cambiar de usuario:

sudo su - odoo -s /bin/bash

Utilizamos el comando cp para copiar la carpeta. 

cp -R /home/ubicación_de_la_carpeta_server /opt/odoo/

Al final el directorio quedará así:

/opt/odoo/server

Para salir del usuario odoo escribimos exit.

Paso 5: Configurar el servidor Odoo 


Creamos el archivo odoo-server.conf en la carpeta /etc/, lo editamos y le asignamos los permisos adecuados:

Creando el archivo:

sudo gedit /etc/odoo-server.conf

El contenido debería quedar así:


En la línea db_password = False cambiamos False por la contraseña que elegimos en el Paso 2.

Hemos adicionado una línea en el archivo odoo-server.conf para indicarle a Odoo donde escribir el archivo del log:

logfile = /var/log/odoo/odoo-server.log

Asignamos los permisos correspondientes:

sudo chown odoo: /etc/odoo-server.conf

sudo chmod 640 /etc/odoo-server.conf

Las instrucciones anteriores asignan la propiedad del archivo con permisos de escritura al grupo y usuario odoo, y con permisos de solo lectura a los usuarios odoo y root.

La configuración está lista, es hora de probar si todo anda bien, para ello cambiamos nuevamente el usuario en consola por el que creamos en el Paso 1 :

sudo su - odoo -s /bin/bash

Y luego ejecutamos Odoo:

/opt/odoo/server/openerp-server

El resultado de la anterior instrucción es el despliegue de varias líneas en la consola como las siguientes:


Para detener la ejecución del servidor Odoo presionamos simultáneamente las teclas CTRL y C.

Para salir del usuario odoo escribimos exit.

Paso 6: Lanzar Odoo al arranque del sistema 


Haremos que Odoo sea lanzado como un servicio de Ubuntu 14.04, es decir que se inicie y detenga automáticamente cuando se arranque o apague el sistema.

Para ello creamos un archivo con nombre odoo-server y lo ubicamos en el directorio /etc/init.d/, editamos el archivo para que quede con el siguiente contenido:


Asignamos el archivo al usuario root y lo hacemos ejecutable:

sudo chmod 755 /etc/init.d/odoo-server

sudo chown root: /etc/init.d/odoo-server

Creamos el directorio con los permisos correspondientes para el archivo log de acuerdo a la configuración realizada en el Paso 6:

sudo mkdir /var/log/odoo

sudo chown odoo:root /var/log/odoo


Paso 7: Probar el servidor Odoo 


Iniciamos el servidor Odoo:

sudo /etc/init.d/odoo-server start

Ahora abrimos un navegador (chrome recomendado) y en la barra de direcciones escribimos:

http://localhost:8069

Lo anterior suponiendo que está usando localhost, de lo contrario reemplace localhost por su dominio o IP.

Una vez iniciado Odoo verá lo siguiente en pantalla:



Detenemos el servidor Odoo:

sudo /etc/init.d/odoo-server stop

Finalmente automatizamos el lanzamiento de Odoo con el arranque del sistema:

sudo update-rc.d odoo-server defaults

------------------------------------

¡Hasta la próxima ocasión!