Odoo - libro Tecnico
Tabla de contenido 1. introduction 2. Bajar e instalar Odoo 8 en Ubuntu 14.04 Server
2
Odoo - libro Tecnico
1 Introducción En este manual queremos mostrar como desarrollar un modulo para openerp que abran ja una gran parte del conocimiento necesario para administrar nuevos desarrollos. Todo va estar basado en la versión de Odoo 8.0 el modulo que vamos a desarrollar va llamarse openacademy que será un sistema para el control de los cursos ministrados en Odoo con sus participantes. También queremos mostrar el uso del Github y controlar nuestra nuevas versiónes por el pero no será muy avanzado, solamente daremos su ambito general.
introduction
3
Odoo - libro Tecnico
Bajar e instalar odoo 8 en ubuntu 14.04. Por mas que queramos tener todo listo para utilizar y desarrollar en Odoo para windows siempre lo mejor va ser tener todo bajo linux, ya que es su principal fuente de desarrollo y todo es probado y funciona mejor con el.
Instalación Automatizada por un script Tenemos un script automatizador para instalar Odoo por completo en un Ubuntu 14.04 Server con todos sus dependencias, y dejan do ya corriendo como servicio. Es la manera mas rapida de instalar. El mismo Script fue disponibilizado Por: André Schenkels, ICTSTUDIO 2014 El repositorio de Github es https://github.com/aschenkels-ictstudio/openerp-install-scripts dentro de este repositorio tenemos los scripts para el Odoo 8. Para facilitar dejo el comando para bajar el script sin el uso del github propriamente.
wget
https://raw.githubusercontent.com/aschenkels-ictstudio/openerp-install-scripts/master/odoo-v8/ubuntu-
14-04/odoo_in
sudo sh odoo_install.sh
Como referencia en las lineas iniciales del script tenemos algunos parametros que son para configurar por ejemplo la contraseña del usuario administrador para crear las base de datos de Odoo por ejemplo:
##fixed parameters #openerp OE_USER= "odoo" OE_HOME= "/opt/$OE_USER " OE_HOME_EXT= "/opt/$OE_USER /$OE_USER -server" #Enter version for checkout "8.0" for version 8.0, "7.0 (version 7), #saas-4, saas-5 (opendays version) and "master" for trunk OE_VERSION= "8.0" #set the superadmin password OE_SUPERADMIN= "superadminpassword" OE_CONFIG= "$OE_USER -server"
Instalación Manual paso a paso Ubuntu 14.04 Paso 1: Instalar Ubuntu 14.04 Paso 2: Abrir el terminal linux como root Paso 3: Actualizar El sistema completamente
sudo apt-get update ; sudo apt-get upgrade -y
Paso 4: Instalar el Github y el Postgresql
sudo apt-get install git postgresql
Paso 5: Vamos a crear el usuario de linux que va correr el odoo ya que no es permitido ejecutar el odoo como root.
Bajar e instalar Odoo 8 en Ubuntu 14.04 Server
4
Odoo - libro Tecnico
sudo useradd -m -U -G sudo -s /bin/bash --home=/home/odoo odoo
En este comando pasamos los parametros -m para crear el home del usuario, el -U para que cree el grupo del propio usuario -G sudo para que el usuario pueda executar comando sudo y el parametro -s /bin/bash definiendo el terminal de este usuario y --home=/home/odoo para definir donde estara el home del usuario, algunas personas ponen /opt/odoo por ejemplo. Paso 6: Cambiamos la contaseña de este usuario
sudo passwd odoo
guardar esta contraseña que digitas para usarle en el paso 10 Paso 7: Creamos el usuario ahora de la base de dados postgres En algunas ocasiones encontramos problema de en la instalación de posgres debido a no haber indicado un "locales" del linux el postgresql no inicializa las base de datos para garantizar que esta inicializado ejecutamos el comando
LC_ALL=en_US.UTF- 8 pg_createcluster 9.3 main --start sudo su - postgres -c "createuser -s odoo" 2> /dev/null
Con el comando linux multiplo ejecuta el comando create user -s odoo con los permisos del usuario postgres y toda las mensages son enviados al /dev/null que es abujero negro en linux :) Paso 8: Instalamos todas las dependencias de los modulos de odoo del sistema operativo linux
sudo apt-get install python-dateutil python-feedparse r
/
python-gdata python-ldap python-libxslt1 python-lxml
/
python-mako python-openid python-psycopg2 python-pybabel / python-pychart python-pydot python-pyparsi ng
/
python-reportl ab python-simplejs on python-tz
/
python-vatnumb er python-vobject python-webdav
/
python-werkzeu g python-xlwt python-yaml python-zsi
/
python-docutil s python-psutil wget python-unittest 2
/
python-mock python-jinja2 python-dev libpq-dev
/
poppler-utils python-pdftools antiwordpy
/
python-setupto ols python-pybabel python-decorat or
/
python-pip postgresql-server-dev- 9.3
Paso 9: Cambiamos al usuario odoo y nos movemos a la carpeta del usuario odoo para bajar los fuentes de Odoo
sudo su - odoo
Paso 10: Tenemos que instalar una ultimo apendencia de odoo que no tiene en el repositorio de ubuntu para el uso de los servicios de google.
wget
http://gdata-python-client.googlecode.com/files/gdata- 2.0.18.tar.gz
tar xzvf gdata- 2.0.18.tar.gz cd gdata-2.0.18/ sudo python setup.py install cd ~/
Bajar e instalar Odoo 8 en Ubuntu 14.04 Server
5
Odoo - libro Tecnico
Paso 11: Por fin bajamos el codigo fuente de Odoo de su repositorio y antes crear una carpeta de desarrollo.
mkdir odoo-dev cd odoo-dev git clone https://github.com/odoo/odoo.git -b 8.0 --depth 1
Atentos a los parametros pasador al git clone -b 8.0 que determina que baje la versión 8.0 y pasamos el segundo parametro --depth 1 que determina el numero de revisiones que va a bajar del repositorio reduciendo mucho los megabites bajados de internet. Saque este parametro si necesitas bajar todos los historiales de revisiones del odoo. Paso 12: Creando archivo de configuración para el servidor.
/home/odoo/odo o-dev/odoo/odoo .py --addons-path= /home/odoo/odoo- dev/odoo/addons
\
-r odoo --stop-after-init --save
Salida que debe retornar el comando arriba:
2015-04-11 23:39:54,784 31613 INFO ? openerp: OpenERP version 8.0 2015-04-11 23:39:54,784 31613 INFO ? openerp: addons paths: ['/home/odoo/.local/share/Odoo/addons/8.0', u'/home/odoo/od 2015-04-11 23:39:54,784 31613 INFO ? openerp: database hostname: localhost 2015-04-11 23:39:54,784 31613 INFO ? openerp: database port: 5432 2015-04-11 23:39:54,784 31613 INFO ? openerp: database user: odoo 2015-04-11 23:39:54,873 31613 INFO ? openerp.service.server: Initiating shutdown 2015-04-11 23:39:54,873 31613 INFO ? openerp.service.server: Hit CTRL-C again or send a second signal to force the shut
Si tenemos algun error en el comando arriba algo diferente del abajo mostrato ejecutar esta sesion si no seguimos en frente con la sesion de abajo Paso 13: Puede que pase algun error por ejemplo de algun modo incluyen alguna dependencia de python que no exista hasta esta revisión de este libro. Pueden verificar todas las dependencias en un archivo txt con el nombre requirements.txt que se encuentra en la carpeta raiz del repositorio de odoo sito /home/odoo/odoo-dev/odoo/requirements.txt, podemos usar el comando pip para instalar estas dependencias directamente del repositorio pip.
sudo apt-get build-dep python-imaging sudo apt-get install libxml2-dev libxslt1-dev libldap2-dev libsasl2-dev sudo pip install -r /home/odoo/odoo-dev/odoo/requirements.txt
El problema de este comando es que va querer bajar todas las dependencias de python y muchas de ellas ya bajamos en el paso 8 Paso 13: Verificando el archivo de configuración Para tener un archivo de configuración bien completo ejecutamos el proprio servidor odoo con el parametro --save para que sea creado un archivo de configuración en el home de usuario con el nombre oculto .openerp_serverrc para ver el conteudo de este archivo.
more /home/odoo/.openerp_serverrc
Paso 14: Copiar el archivo de configuración a la carpeta /etc/
sudo mkdir /etc/odoo
Bajar e instalar Odoo 8 en Ubuntu 14.04 Server
6
Odoo - libro Tecnico
sudo chown $(whoami) /etc/odoo cp /home/odoo/.openerp_serverrc /etc/odoo/openerp-server.conf
Paso 15: Carpetas para los logs del servidor.
sudo mkdir /var/ log/odoo sudo chown $(whoami) /var/ log/odoo sudo cp /home/odoo/odoo-dev/odoo/debian/init /etc/init.d/odoo sudo chmod +x /etc/init.d/odoo sudo ln -s /home/odoo/odoo-dev/odoo/odoo.py /usr/bin/openerp-server sudo ln -s /home/odoo/odoo-dev/odoo/odoo.py /usr/bin/odoo.py sudo chown $(whoami) /usr/bin/openerp-server
Paso 16: Comprobando si todo corre bien.
sudo /etc/init.d/odoo start curl http://localhost: 8069
<script>window.location = '/web' + location.hash;
Paso 17: Ahora ponemos el script para correr automaticamente en el boot del linux.
sudo update-rc.d odoo defaults
Instalación usando el Servidor Odoo El propio servidor odoo nos ayuda a instalar en debian y derivador sus dependencias y la base de dados Postgresql. Economizando bastante tiempo en el procedimiento arriba mencionado. Paso 1: Instalar Ubuntu 14.04 Paso 2: Abrir el terminal linux como root Paso 3: Actualizar El sistema completamente Paso 4: Instalar el Github y el Postgresql Paso 5: Vamos a crear el usuario de linux que va correr el odoo ya que no es permitido ejecutar el odoo como root. Paso 6: Cambiamos la contaseña de este usuario
# Paso 3 actualizar el sistema completamente sudo apt-get update ; sudo apt-get upgrade -y # Paso 4 Instalar el github y postgresql sudo apt-get install git postgresql -y # si aqui aparece un mensage de error que no pude #crear el cluster de postgres debido a algun error de locales sudo LC_ALL=en_US.UTF- 8 pg_createcluster 9.3 main --start # Paso 5 Creamos el usuario de linux sudo useradd -m -U -G sudo -s /bin/bash --home=/home/odoo odoo # Paso 6 Modificamos su contraseña sudo passwd odoo
Bajamos el Codigo fuente de Odoo.
#mudamos al usuario Odoo y nos pedira la senha del usuario que esta #corriendo En la terminal.
Bajar e instalar Odoo 8 en Ubuntu 14.04 Server
7
Odoo - libro Tecnico
su - odoo cd ~ mkdir odoo-dev cd odoo-dev git clone https://github.com/odoo/odoo.git -b 8.0 --depth 1
Bajamos las dependencias del Sistema operativo y configuracion del usuario de base de datos.
/home/odoo/odoo-dev/odoo/odoo.py setup_deps /home/odoo/odoo-dev/odoo/odoo.py setup_pg
Repetimos los pasos 12, 13, 14, 15, 16, 17.
Archivo de configuración openerp-server.conf Veremos algunos de los principales parametros del archivo de configuración de odoo que para no tener que cambiar los scripts de inicialización de Odoo. El archivo de configuración de odoo cuando no esta definido como parametro en el comando para levantar el servidor tipo:
/home/odoo/odoo-dev/odoo/odoo.py -c /etc/odoo/openerp-server.conf
El script utiliza el archivo que se encuentra oculto en la carpeta del usuario que corre el odoo llamado ".openerp_serverrc" el ' . ' adelante en linux es la referencia de que es un archivo oculo y solamente se vera con el con el parametro -a en el ls.
ls /home/odoo/ -a .
.bash_logout
.links2
odoo-dev
..
.bashrc
.local
.openerp_server rc
.profile
addons_path = Variable responsable de pasar al servidor los locales de onde va a leer los addons disponibles en esta estancia de Odoo, es posible tener 2 o mas carpetas separados por "," como mostrado abajo, tomar en cuenta no dejar espacio entre los comas. Ejemplo:
addons_path = /home/odoo/odoo-dev/odoo/addons,/opt/addons
admin_password = Es la contraseña de mantenimiento de odoo es la que se usa para poder hacer backup, restore, crear bases de datos nuevos etc.
log_level = [info][debug_rpc] son dos opciones principales, la primera info es la default i monstra informaciones del servidor basico, la debug_rpc es para mostrar informaciones mas detallada donde podriamos detectar por ejemplo performance del sistema.
xmlrpc_port = Variable para definir el puerto que va responder el Odoo por definición es el 8069. proxy_mode = Si utilizamos un proxy reverso para el servidor web, es necesario definir esta variable a verdadero. xmlrpc_interface = Cuando definimos la variable proxy_mode para "True" es que no queremos que sea utilizado e servidor que no sea por el proxy, la variable xmlrpc_interface es para definir a que clase de ip o a que ip especifico el servidor respondera, default es 0.0.0.0 si trabajamos en proxy_mode seria interesante que este respondiendo a localhost o Bajar e instalar Odoo 8 en Ubuntu 14.04 Server
8
Odoo - libro Tecnico
sea 127.0.0.1
dbfilter = Es para definir que base de datos va quedar disponible para listar en Odoo, puede utilizar expresiones regulares. por exempo ^v8db$ que lista las base de datos que el nombre empieza por v8db y cualquir terminación.
data_dir =Carpeta que guarda los archivos adjuntos que no se encuentran en la base de datos, es PRIMORDIAL QUE SE HAGA BACKUP juntamente con la base de datos. Pode definición estandart guarda los dados en la carpeta oculta .local/share/Odoo en la carpeta del usuario que corre el servidor.
without_demo=True para que no tenga disponible en la creación de nuevas base de datos los datos demostrativos. logrotate=True Para que compacte y haga la rotación de los logs de Odoo es importante para que no llene nuestro disco.
Instalación de módulos y creación de una base de datos. Tenemos todo instalado con nuestro servidor corriendo que es una perfecta instalación para como servidor de producción entramos en el navegador con la dirección ip de la maquina seguido de :8069 que es el puerto estandart de Odoo y nos encontramos con la pantalla abajo para poder crear nuestra primer base de datos:
Si no Aparece esta pantalla es que tenemos ya alguna base de datos Odoo instalado y tenemos que seleccionar manager databases para crear una nueva. Nos pedirá la contraseña maestra ya completada como admin que es el estandart y en nombre de la base de dato que le pusimos primer_banco_full luego si queremos que sean cargados los datos de demostración de Odoo el lenguaje principal y una contraseña para el usuario admin de esta base de datos.
Bajar e instalar Odoo 8 en Ubuntu 14.04 Server
9
Odoo - libro Tecnico
Clicamos en el botón Crear. Después de un rato Odoo ya va entrar directamente a la aplicación dejando la pantalla bajo disponible para que tengamos la oportunidad de instalar los módulos necesarios.
Para ver lo grandioso que es el Odoo vamos instalar todos los módulos para eso solamente tendremos que clicar en instalar en cada uno de los arriba mostrados. Para instalar todos los modulos de una vez utilizamos el menu de busqueda para filtrar solamente los programas ya que tenemos también programas que agregan o cambian algunas funcionalidades de Odoo. En el menu de busqueda eleccionamos aplicaciones en el filtro.
Luego cambiamos la vista en que estamos trabajando en este momento que es la kanban y seleccionamos la vista lista como mostrado abajo.
Bajar e instalar Odoo 8 en Ubuntu 14.04 Server
10
Odoo - libro Tecnico
Para instalar los otros módulos en Odoo marcamos el checkbox arriba en la cabecera de la lista que va seleccionar todas y nos va aparecer arriba de la cabecera algunas opciones o también llamada de acciones. De ai vamos a seleccionar modulo de instalación inmediata como mostrado en el menú abajo.
Después de un largo rato tendremos los módulos instalados tenemos que salir e volver a entrar para cargar los mismos. Para eso usamos el menú Cerrar sesión que se encuentra a lado superior derecho clicando en administrador.
Al volver a entrar con el usuario admin y contraseña que definimos al crear la base de dados tendremos todos los módulos instalado. En primero tenemos el panel de mensajes o email del usuario y todas las mensajes y alteraciones en los datos de interés del usuario.
Depuración de código python con Winpdb Remoto Uno de los principales problemas al desarrollar módulos o incluso conocer el funcionamiento de módulos es poder depurar el código python para saber los valores de las variables y saber si los retornos son los esperados. Una de las formas de depuración es directo en el codigo utilizar el metodo _logger.info(mensage y/o variables) que nos traera un mensagem en el console o en el archivos de log de odoo. Pero es muy trabajoso ya que tenemos que estar codificando para cada Bajar e instalar Odoo 8 en Ubuntu 14.04 Server
11
Odoo - libro Tecnico
variable o informaciones que necesitemos y logicamente no podremos seguir la ejecución linea a linea del codigo. Otra forma es utilizando el entorno de desarrollo Eclipse pero es lento. Otra forma creada por la gente de la empresa CLEARCORP S.A. De Costa Rica www.clearcorp.co.cr es un modulo de openerp que funciona con la versión 6.1, 7.0 y 8 de Odoo juntamente con el winpdb que corre en linux. Primero vamos a bajar los fuentes de este modulo que tenemos que bajar del github juntamente con otros modulos desarrollados por ellos.
su - odoo cd odoo-dev/odoo/ git clone https://github.com/Vauxoo/addons-vauxoo.git --depth= 1 cd addons ln -s ../addons-vauxoo/winpdb_debugger
Tenemos que hacer unos cambios en el xml del menu de este modulo para que funcione en la versión 7 y 8 de Odoo ya que exije que tendamos 2 niveles en blanco de menu. Podremos poner en el menu configuraciones. Cambiamos la linea de arquivo windpdb_debugger_view.xml
name= "Star Winpdb debugger" action="winpdb_debugger_open_wizard" id="winpdb_debugger_menu" parent="base.menu_administration" sequence= "100"
/>
Y cambiamos por esta:
name= "Star Winpdb debugger" action="winpdb_debugger_open_wizard" id="winpdb_debugger_menu" parent="base.menu_config" sequence= "100"
/>
Notamos que cambiamos noma el nombre del menu parent de base.menu_administration para base.menu_config. Esto se ve necesario ya que en la versión 7 y 8 el segundo nivel general del menu es un string sin acción por definición en core de openerp diferente de la versiones anteriores. Tambien tenemos que editar el archivo winpdb_debugger.py para que acepte conecciones remotas.
def action_start_debugger(self, cr, uid, data, context):
rpdb2.start_embedded_debugger(config[ 'admin_passwd' ] )
para:
def action_start_debugger(self, cr, uid, data, context):
rpdb2.start_embedded_debugger(config[ 'admin_passwd' ], fAllowRemote=True )
Tenemos que Instalar las pedendencias en python de este modulo que es rpdb2 tenemos que instalar tambien en este servidor el winpdb
sudo apt-get install winpdb
Bajar e instalar Odoo 8 en Ubuntu 14.04 Server
12
Odoo - libro Tecnico
El winpdb debe ser instalado tambien en la maquina cliente.
Bajar e instalar Odoo 8 en Ubuntu 14.04 Server
13