Archivo | OpenERP RSS for this section

OpenERP 7 en Docker con jasper report y python 2.7 cuando pip ya no anda más


Estas notas son para contar la aventura LOCA de montar un servidor viejo de OpenERP 7 en el año 2023. (funciono perfecto en un server por 10 años)

Primero hay que decir que esta versión anda en python 2.7 que hoy ya se dejo de ser soportardo y tiene problemas con instalación de librerías con pip necesarias. ¡ uuuuuuuuu !… si, primer luz roja.

Por esta razón decidí usar la versión docker del servidor (que ya sabemos que anda) y desde ahí montar el código fuente. (no se hasta cuando va a funcionar o se va a encontrar… trabajito extra: hacer copia por las dudas que desaparezca)

También quiero poder modificar el código así que necesito instalar el fuente o que ande el fuente en el docker de alguna forma.

En su momento usé JasperReport para la generación de reportes. Se instalaba un server de reportes (creo que usaba apache y tomcat server)….uffffff!

Debe ser por estas cosas que se privilegia actualizar la versión ANTES de hacer las modificaciones.

Logre generar un banco de trabajo con Docker y poder hacer modificaciones, incluso modificar codigo andando… asi que es posible.

Lo bueno de utilizar docker es que es replicable y estable.

Ahora empieza la aventura de importar los datos y actualizar versiones.

Si te sirvió este apunte y quieres invitarme un café o una refrezco puede hacerlo pulsa AQUI.
Si en cambio quieres ayudarme a seguir haciendo y juntando apuntes utiles pulsa AQUI.

Odoo 8 con Docker en pocos minutos andando en tu pc


Nota: todo fue hecho en Ubuntu Desktop 14.04 64 bit

Gratamente me entere de que existía Docker. Un remedio al dolor de cabeza para programadores de Odoo. Ya no hay que hacer 100 veces los mismos comandos o pasar 2 horas haciendo un script de instalación (que se pone viejo). Basta con descargar el nuevo Docker con la versión correcta y listo…. cuantas horas me hubiese ahorrado si lo conocía antes!. No me voy a extender mucho sobre lo que es para ello visite su sitio web, solo voy a decir que es similar a una maquina virtual completa que puedes modificar a tu gusto y subirla para que la usen otros o para instalarla en otra pc. Si cambias de sistema haces lo mismo y sigue andando… maravilloso!.

Instalación de Docker

$ sudo apt-get update
$ sudo apt-get -y install docker.io
$ sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker
$ sudo sed -i '$acomplete -F _docker docker'/etc/bash_completion.d/docker.io
$ sudo apt-get -y install curl $ curl -s https://get.docker.io/ubuntu/ | sudo sh $ sudo apt-get update $ sudo apt-get -y install docker

Si tienes el ufw activado hay que modificar el archivo de configuración así:

$ sudo nano /etc/default/ufw

# Change:

# DEFAULT_FORWARD_POLICY=»DROP»

#to

DEFAULT_FORWARD_POLICY=«ACCEPT«

Ahora recargamos las reglas del UFW:

$ sudo ufw reload

Acomodo los permisos
# Add the docker group if it doesn't already exist.
$ sudo groupadd docker

# Add the connected user "${USER}" to the docker group.
# Change the user name to match your preferred user.
# You may have to logout and log back in again for
# this to take effect.
$ sudo gpasswd -a ${USER} docker

# Restart the Docker daemon.
# If you are in Ubuntu 14.04, use docker.io instead of docker
$ sudo service docker restart

Yo en este punto reinicie mi pc.

Odoo

Para tomar la ultima versión y traerla local

$ docker pull tinyerp/debian-openerp:8.0

Para hacerlo andar y que se ejecute al inicio de la pc (ojo el parámetro name tiene doble guión delante)

$ docker run -d –name openerp8 -p 8069:8069 tinyerp/debian-openerp:8.0

Para ver si anduvo desde tu browser preferido

http://localhost:8069/

JA!…. MARAVILLOSO!!… no?

Tener en cuanta que cuando se apaga la maquina y se encienda el docker se activa nuevamente…..ufff…. cuantas ideas que brotan de tu cabeza!!! …. Para arrancarlo o frenarlo cuando quieras hay que hacer:

$ docker stop openerp8
$ docker start openerp8

Si queres hacer modificaciones dentro de la imagen cargada en memoria, hacer:

$ docker stop openerp8
$ docker run –name openerp8e -i -t -p 8069:8069 tinyerp/debian-openerp:8.0 bash

Lo que estas haciendo es generar modificaciones en memoria. Toma nota que el nombre que le dimos es distinto al anterior porque no puede generarse uno con el mismo nombre ni con los mismos puertos… este punto da para otra entrada.

Para eliminare de memoria y que no arranque mas hacer:

$ docker stop openerp8
$ docker ps -a      (ver el [image ID])
$ docker rm [image ID]

Y AUN MAS!

Si quieres usar otra versión como la seis o la siete basta con hacer:

$ docker pull tinyerp/debian-openerp:6.1

$ docker pull tinyerp/debian-openerp:7.0

Ahora puedes ayudarme a continuar para hacer y juntar apuntes utiles: Pulsa AQUI para dar una DONACION simple.

No te quedes hasta muy tarde… descansar bien mejora tu perfomance…. BUENA VIDA!

Ambiente y entorno de desarrollo para OpenERP con oerpenv para Ubuntu 12.04 o superior.


Antes que nada, mi agradecimiento por el tiempo invertido al creador de esta herramienta, Cristian Sebastian Rocha.

En esta entrada voy a detallar mi experiencia con esta herramienta en el sistema Ubuntu Linux 12.04. La idea es contener en una carpeta tanto el servidor como los addons y poder utilizarlos independientemente si es que tenemos varios proyectos en curso. Supongo un sistema recién instalado y una carpeta creada ~/ambientes (a esta carpeta la llamaremos raíz).

Primero debemos preparar el sistema y agregarle las herramientas necesarias. Todos los comandos los haremos en un terminal de usuario normal:

$ sudo sudo apt-get install aptitude postgresql-9.1 bzr subversion pip python python-pip python-svn python-psycopg2 python-dev libldap2-dev libsasl2-dev python-virtualenv mercurial swig

Es necesario tener configurado el postgresql. Para ello, si el usuario linux que estamos usando es por ejemplo ignacio, hacemos:

$ sudo -u postgres createuser -s ignacio
$ createdb ignacio

Ahora instalo la herramienta desde el espacio de Cristian en launchpad:

$ sudo pip install bzr+http://code.launchpad.net/~moldeo-openerp-addons/oerpenv/trunk

Si ya lo tenemos instalado se puede actualizar haciendo:

$ sudo pip install bzr+http://code.launchpad.net/~moldeo-openerp-addons/oerpenv/trunk --upgrade

Aclaro que todavía es una versión experimental, así que hay que tener los cuidados del caso. Aunque es completamente funcional aun puede tener algunos bugs.

Ahora para probar que funciona correctamente, crearemos un proyecto nuevo para la versión 6.0 y lo llamaremos «foo» (aclaro que este proceso descarga todo desde launchpad y tarda bastante. Si ya lo descargamos podemos copiar las carpetas desde el sources de otro proyecto que tengamos):

$ ~/ambientes
$ oerpenv init --version 6.0 foo

Yo elegí usar la versión 6.0 pero también funciona para 6.1 y 7.0.

Ahora ya tenemos la estructura de carpetas dentro de foo que se necesitan pero todavía no es funcional. También existe un archivo llamado environment.conf que es el archivo que nos permitirá instalar dependencias de python en el entorno y algún addons que tengamos que descargar de algún otro lado. Si hacemos alguna modificación en este archivo actualizamos el ambiente haciendo:

$ oerpenv update

Ahora instalamos lo que descargamos dentro del entorno, haciendo:

$ oerpenv install

Una ves que termino la instalación, creamos un modulo de prueba vacío:

$ oerpenv dummy mymodule

También podríamos crear nuestro propio modulo a mano, esto se hace dentro de la carpeta raiz/foo/source/foo/mymodule. Una vez creado es necesario habilitarlo dentro del entorno, sino no se entera que hay algún modulo nuevo.

$ oerpenv enable mymodule

Ahora si, podemos ejecutar el servidor en modo de testing de unidad para el módulo mymodule. Si tiene los test incorporados en el mismo modulo, los realiza y muestra el resultado de los mismos.

$ oerpenv test mymodule

Para probar con la localizacion argentina, el módulo de Factura Electrónica para Argentina de la version 6 revisar este link

Espero sus comentarios y observaciones.

Nuevo repositorio de OpenERP de la Localización Argentina


Por fin puedo anunciar que ya esta abierto el repo en launchpad, abierto a todo aquel que quiera colaborar.

Se hicieron varias reuniones con todos los interesados en colaborar y que nos veíamos impedidos de poder hacerlo. Finalmente se voto abrir un repositorio nuevo y un grupo abierto que lo controle.

El grupo donde podes unirte es: https://launchpad.net/~openerp-l10n-ar-localization

El repositorio donde ponemos el código de la localización es: https://launchpad.net/openerp-l10n-ar-localization

Si queres colaborar y no sabes como acá hay un apunte: Uso de Launchpad para la Localización Argentina

Ya se estan viendo los cambios y estamos mejorando gracias a la colaboración comunal.

Filtrar en una vista de OpenERP por campos nulos (vacío, null) o no nulos (con contenido)


Necesitaba ver en un listado (tree) todos los registros que NO CONTENGAN datos en «este_campo» (osea los nulos o null) entonces la acción la definí asi:

<act_window id="act_view_listado" name="listado" res_model="mi.listado" domain="[('este_campo','=', False)]"/>

para el caso si quiero filtrar aquellos registros en cuyo campo TENGA contenido hago:

<act_window id="act_view_listado" name="listado" res_model="mi.listado" domain="[('este_campo','!=', False)]"/>

Espero que te sirva como me sirvió a mi.

Formatear campo fecha en reporte Jasper Report desde OpenERP, diseñado con iReport


Necesitaba imprimir una fecha con formato largo en un reporte desde OpenERP. Me encontré con poca data y por eso comparto la solución que me sirvió.

Declare en un objeto un campo tipo fields.datetime que necesito agregar a un reporte con formato largo de fecha. Si agrego el campo directamente al reporte me aparece así:

2011-12-19 00:00:00

Aparentemente el reporte lo toma como texto así que necesito indicarle que es una fecha y además que tiene un formato particular que quiero. Entonces, con el reporte abierto en iReport me paro con el mouse sobre el campo que necesito formatear y pulso el botón secundario. Elegimos «Edit Expression» y agregamos:

new SimpleDateFormat("dd' de 'MMMMM' de 'yyyy").format( new SimpleDateFormat("yyyy-MM-dd").parse($F{Campo_de_Dato}))

Que me aya dado resultado a mi, son significa que esté correcto. Si conoces una mejor manera de hacer lo mismo, déjanos el comentario, así aprendemos juntos.

Ahora puedes ayudarme a continuar para hacer y juntar apuntes utiles: Pulsa AQUI para dar una DONACION simple.

Links adicionales:

Formato de números de iReport para OpenERP
iReport Tips
iReport: Displaying current date and time

¿Cómo se que version de python estoy usando?


Este es un copy y paste de un correo que encontré y que no quiero perder de vista:

A ver, la cosa está así. En cualquier versión de Linux le das:
   which python
y te debe regresar algo como,
   /usr/bin/python

Este es el Python que corre cuando das python + enter.

Si instalas otra versión de Python, la instalación generalmente intenta por
default en /usr/local/bin.
En un escenario como este, si tu escribes python + enter, vas a ejecutar el
que traía la distribución de Linux y si ejecutas /usr/local/bin/python estarás
corriendo el Python que instalaste.

Cuando instalas un módulo hay que correr generalmente "python setup.py install".
Cómo sabes en cuál Python queda el módulo?
Por el python que corra el setup:
python setup.py install      --> instala el módulo para el python que
corre por default  -"which python"
/usr/local/bin/python         --> instala el módulo en el python que
instalaste aparte.

Adicionalmente, puedes usar ligas simbólicas para que al ejecutar python,
por ejemplo, ejecute /usr/local/bin/python y el más antiguo si quiere puedes
llamarlo vía "python24".
Si tienes más de un Python, conviene tener en algún sitio el registro de lo
que vas instalando, para no llevarse sorpresas y de pronto te falta un módulo
fundamental y tú creías que ya estaba en éste Python y resulta
 que está en el otro.

Saludos
Gerardo Juárez M.

Adicionalmente se puede ver que versión de python estoy usando actualmente haciendo en consola:

$ python -V

Ahora puedes ayudarme a continuar a hacer y juntar apuntes utiles: Pulsa AQUI para dar una DONACION simple.

Nueva wiki OpenERP especialmente para Argentinos


Actualización 2013-01-31 : Esa wiki esta abandonada por su dueño. Lamentablemente, tampoco permite que sea pública. Para consultar dudas, dirigirse al grupo abierto de google que es numeroso y se responden todas las consultas.

Tengo el gusto de anoticiarlos de que ya esta operativo el sitio www.openerpargentina.com.ar realizado por Sebastián Marró. Hace unos días lo publico en la lista de correos de openerp-argentina alojada en google.

Es una muy buena noticia ya que podremos compartir contenidos de OpenERP como por ejemplo:

– Noticias de OpenERP y de la comunidad/localización Argentina
– Eventos (charlas, reuniones que se pueden comenzar a hacer, sprints para desarrollar alguna función para agregar al Open…)
– Información sobre Configuración de OpenERP
– Información sobre Programación con OpenERP

por decir algunos… me parece que el sitio le puede servir tanto a programadores, como a usuarios y a gente que no conoce OpenERP.

Felicitaciones a Sebastián por la iniciativa.

Buena Vida!

Como puedo ayudar o colaborar con OpenERP


Esta es una copia directa del articulo publicado por Angel Moya en su sitio, que para mi es muy importante si quieres mejorar nuestro sistema OpenERP.

La semana pasada estuve en Bilbao en las jornadas estatales de OpenERP y me quede impresionado con el funcionamiento de la comunidad. Como hace tiempo que estoy dándole vueltas a la documentación y pensando en traducirla he decidido que lo primero con lo que voy a empezar a colaborar es con la traducción de la documentación. Las herramientas necesarias para colaborar con OpenERP son Launchpad y Bazaar, vamos a ver que son y como se utilizan si queremos descargar código (en este caso será el código de la documentación), modificarlo y volverlo a subir para que este disponible para la comunidad.

Según la wikipedia “Launchpad es una aplicación web y un sitio web que apoya el desarrollo de software, en particular el de software libre. Está desarrollada y mantenida por Canonical Ltd..”, puedes ver el articulo completo aquí. Launchpad da soporte para compartir código y controlar versiones, reportar errores (Bugs), sugerir modificaciones y nuevas funcionalidades (blueprints), crear traducciones y para dar respuestas a preguntas de la comunidad. La herramienta que permite compartir el código y controlar versiones es Bazaar, luego veremos como funciona.

Para poder colaborar en cualquier proyecto alojado en Launchpad tendremos que registrarnos en la web de Launchpad. Una vez tengas tu cuenta en launchpad puedes unirte al grupo openerp-community. No es necesario unirse a ningún grupo para descargarte el código, pero si para subir modificaciones.

Bazaar es la herramienta que permite descargar el código y controlar las versiones a la hora de subirlo. Puedes ver mas en Bazaar en cinco minutos. Para instalar bazaar en ubuntu 9.10 hacer lo siguiente:
Dependiendo de la versión necesaria para usar bzr es conveniente instalarlo desde su repositorio

echo ‘deb http://ppa.launchpad.net/bzr/ubuntu karmic main’ | sudo tee -a /etc/apt/sources.list
apt-get update

Una vez añadido al repositorio se puede instalar asi

apt-get install bzr

para instalarlo en otra versión de ubuntu simplemente cambia el nombre de la versión al añadir los repositorios, y para otro sistema operativo puedes ver la guía aquí.

La idea es la siguiente, el código compartido en bazaar se organiza en ramas o branches, por ejemplo el proyecto openerp-server tiene una rama llamada trunk para el código en desarrollo, y una rama 5.0 para la versión estable. Así que si queremos descargarnos la versión estable de openerp-server podemos hacer:
bzr brach lp:openobject-server/5.0
y para descargarnos el código de la documentación:
bzr branch lp:openobject-doc
con esto se nos crea un directorio llamado openobject-doc que contendrá el código de la documentación. En el próximo post explicare la estructura del código de la documentación y como se crean las traducciones.

Bazaar es una herramienta distribuida de control de versiones así que lo que hemos hecho realmente al descargar el código es crear una rama en nuestro repositorio local, si modificamos el código antes de subirlo tendremos que sincronizar nuestra rama con la original, obtendremos los cambios realizados desde que descargamos el código o desde la última revisión que hicimos y lo sincronizaremos con nuestra rama local.

Para poder publicar nuestro código con Bazaar primero tendremos que identificarnos, por un lado nos identificaremos con nuestro usuario de Launchpad:
bzr launchpad-login nombre_usuario_launchpad
la primera vez que lo ejecutemos se creara el fichero /home/angelmoya/.bazaar/authentication.conf con la información de nuestro usuario.

Por otro lado tenemos que identificar nuestro equipo con la clave ssh key, para conseguir nuestra clave ssh key en ubuntu lo haremos así:

#Instala OpenSSH
sudo apt-get install openssh-client
#Genera la clave
ssh-keygen -t rsa
# – Presiona intro para aceptar el nombre por defecto
# – Introduce la contraseña

Con esto se genera en el directorio /home/usuario/.ssh/ una pareja de claves, id_rsa la clave privada y id_rsa.pub la clave publica. La clave privada se quedara en tu equipo y la publica hay que subirla a tu perfil de launchpad. Logeate en Launchpad.net con tu usuario y accede a tu página para editar la información de SSH keys.
ssh key lanuchpad
Copia en esa ventana la información que hay dentro del fichero /home/usuario/.ssh/id_rsa.pub y clicka el botón Import Public Key para terminar.
add ssh key launchpad
Con esto ya tienes tu equipo preparado para subir modificaciones del código. Si te has descargado el código del proyecto openobject-doc y has realizado alguna modificación, ve al directorio de openobject-doc y haz lo siguiente:

Sincronizamos nuestros cambios con los que se han realizado en openobject-doc desde la ultima sincronización
bzr merge
Hacemos un commit para indicar los cambios que hemos realizado
bzr ci -m «[TAG] Mensaje explicando cambios hechos»
Por último subimos los cambios
bzr push
Para mas información puedes consultar aquí.

Por último, cuando realices el commit, según se indica la documentación de Open ERP aquí sobre como subir tus modificaciones, en el mensaje hay que indicar que tipo de modificación has realizado, esto se indica con el [TAG] las diferentes opciones son:

* [IMP]: Mejoras
* [FIX]: Corrección de errores
* [REF]: Refactorizar, modificar el código sin cambiar la funcionalidad
* [ADD]: Añadir fuentes
* [REM]: Eliminar fuentes

Con esto ya hemos visto como trabajar con Launchpad y Bazaar, en el siguiente post veremos como trabajar en la traducción.

Muchas gracias Angel Moya.

OpenERP para usuarios de Argentina


Viendo la necesidad de agrupar a los administradores y usuarios de OpenERP específicamente para Argentina, he creado un grupo de correos en Gmail para que nos mantengamos conectados y así poder ayudarnos.

Grupo OpenERP-Argentina

OpenERP tiene una comunidad muy activa y extendida en habla hispana.

Publica aquí todas tus inquietudes así aquellos que tuvieron ese mismo problema puedan ayudarte y así ,entre todos, construyamos una fuente de conocimientos sobre OpenERP.

update 2016/11/14 : Transfiero la administracion de los grupos a Gustavo Orrillo porque no me alcanza el tiempo para administrarlos correctamente y el lo viene haciendo muy bien desde hace 2 años.