sábado, 25 de julio de 2015

Obtener la IP de Cliente en Odoo

¿Como Obtener la IP del Cliente en Odoo?

 En una reunión con el compa Jorge Rengifo y su equipo nos preguntamos como se obtenía la ip del cliente en odoo mediante Python ya que en otras oportunidades se había hecho con Php, pero en otra plataforma, me comprometí a googlear y a analizar para darle una respuesta sintáctica.

Bueno me hice dos pregunta. ¿Ya el framework   tendrá una clase dentro de su motor que haga este trabajo mediante Python?  o ¿Tendré que importar una Biblioteca de Python que capture los datos del la requests? 

Investigando respondí mi primera interrogante, ya que Odoo trae dentro de su paquete openerp un modulo que se llama http.py y dentro de este utiliza un almacenamiento local de subprocesos (hilos) en una variable llamada request para las peticiones de los objeto de una forma global, y lo hacen con esta técnica ya que en Python todo se comparte, a excepción de las variables de función local.

Ahora bien lo primero que debemos hacer dentro de su modulo.py (su archivo .py) de su paquete (su proyecto odoo) es adicionarle  la importación. from openerp.http import request y luego en el atributo 'ip' del objeto le retornas por el diccionario _defaults la siguiente función. 
lambda self,cr,uid,context: request.httprequest.remote_addr

Ejemplo modulo estudiante.py

from openerp.osv import fields, osv
from openerp.http import request


class unefa_estudiantes(osv.osv):
    _name='unefa.estudiantes'
    _rec_name='nombre'
    

    _columns={
        'nombre':fields.char(
                   'Nombre del Estudiante',
                    size=80,
                    required=True,
                    help='Nombre del estado a registrar'),
        'ip':fields.char(
                    'IP',
                     size=15,
                     help='ip del cliente de la petición'),
        'active':fields.boolean(
                     'Activo',
                      help='Si esta activo el motor lo incluirá en la vista...'),
    }
    

    _defaults={
        'active':True,
        'ip':lambda self,cr,uid,context: request.httprequest.remote_addr

    }

   Para cualquier duda o aporte puede hacer su comentarios o seguirnos por nuestro  canal de Youtube  



  



  

miércoles, 15 de julio de 2015

Generar un esquema del modelo de datos para un proyecto en Odoo


En vista de que en pgadmin III no conseguimos una opción para generar el modelo de entidad-relación, surgió la necesidad de buscar una aplicación que realice esta función.

En esta oportunidad les comentaremos como realizar un Modelo de Entidad Relación y su esquema de datos a partir de mi estructura de base de datos en odoo, la cual consegui en un programa que se llama Schemaspy.
 
Schemaspy es una programa basado en java el cual permite generar un esquema del modelo de datos a partir de una base de datos.

Antes de mencionarles como generar el diagrama, es necesario destacar el entorno de desarrollo en el que se utilizará el Schemaspy: Sistema Operativo Canaima GNU/Linux 4.1, base de datos postgres.


  • Paso 1. Instalar jre6 de java 
       sudo apt-get install openjdk-6-jdk openjdk-6-jre
  • Paso 2. Instalar graphviz
    sudo apt-get install graphviz
     
  • Paso 4. Descargar el controlador de base de datos desde la pagina oficial, en nuestro caso el driver jdbc 4.
        Controlador JDBC

  • Paso 5. Verificar que los archivos descargados estén en la misma carpeta, en nuestro caso están ubicados en la carpeta que llamamos schemaspy, nos salimos de modo root y en modo usuario,  nos ubicamos en la carpeta schemaspy y colocamos la siguiente linea de comandos:


    java -jar schemaSpy_5.0.0.jar -t pgsql -o hola_mundo -host localhost -db hola_mundo -u odoo -noschema -dp postgresql-9.1-903.jdbc4.jar

    En donde:

    -t: tipo de base de datos, puede ser: "pgsql"(postgres), "mssql"(Microsoft SQL Server), "mysql"(mysql)
    -o: carpeta a exportar puede ser nueva o existente, en nuestro caso creamos una nueva carpeta llamada hola_mundo
    -host: ip en la cual se encuentra la base de datos, en nuestro caso localhost
    -db: nombre de la base de datos, el nombre de nuestra base de datos es hola_mundo
    -u: usuario de la base de datos, aquí el usuario es odoo
    -noschema: si no se quiere definir un esquema en particular
    -p: password del usuario de la base de datos.
    -dp: jdbc(conector) del driver a utilizar(es opcional, para postgres lo pide sino da un error en la ejecución)   

    Abrimos la carpeta schemaspy, allí esta la carpeta hola_mundo que contiene los diagramas generados en html, png.


    Finalmente, en la siguiente imagen mostramos un ejemplo de un Modelo de Entidad Relación:
     

lunes, 6 de julio de 2015

_defaults en Odoo




Asignar valores por defecto a los atributos en Odoo


En el siguiente vídeo se da una explicación de como agregar valores por defecto a los atributos de nuestros objetos (modelos). este se realiza con la palabra reservada "_defaults", esta no es mas que un diccionario en el cual se le definen los atributos y los valores por defecto que queramos que obtenga al momento de crear un registro. ejemplo:


    



También se da un breve ejemplo de como cambiar la imagen por defecto que trae el formulario de res.company. para ello se escribió  el método "_get_logo". A través de la herencia y la asignación al atributo logo por "defaults" , en este método se construyo la ruta de la imagen que queríamos que res.company codificara por defecto. 



Aqui les dejo el video:


Espero les sea útil, este es un aporte de:

Jose Mancilla 
Correo: josedmancillam@gmail.com

viernes, 3 de julio de 2015

_inherit en Odoo (Hijo a padre)

Herencia de un objeto hijo a un objeto padre en Odoo

         Aquí les traigo un vídeo  del curso Odoo, tutorial 2 donde le hacemos una modificación a un formulario del freamework que es parte de la configuración que trae por defecto este ERP, en este formulario (Company) es donde se configura los parámetros generales de la empresa al cual le vamos a desarrollar el sistema, pero como el sistema lo vamos a desarrollar para La República Bolivariana de Venezuela se requiere un campo para guardar el RIF que necesitaremos más adelante y  este formulario no posee este atributo, adicional mente como este sistema va hacer para la Universidad Nacional Experimental de la Fuerza Armada, conocida por su lema de Excelencia Educativa entonces no estamos hablando de compañía si no de universidad, por lo cual también se requiere cambiar todo lo que este ERP llama por defecto en sus labels como compañía por universidad.

Esperamos que le sea muy útil y a sus vez un aporte a la independencia tecnologica.

Esta es una colaboración de Felipe Villamizar correo: Felipeunefa@gmail.com



lunes, 29 de junio de 2015

Introduccion a Odoo

¿Que es Odoo?


En este vídeo damos una breve introducción de este sistema de ERP de código abierto, tocando los siguientes puntos:



  • Definición de sus siglas.
  • Evolución de sus versiones.
  • ¿Que es odoo? 
  • Plataformas, Lenguajes y herramientas.
  • Para que se Utiliza?
  • Características e Integración.
  • Quienes lo Utilizan.



jueves, 18 de junio de 2015

menuitem en Odoo ( Menú y Submenú )

COMO GENERAR MENU Y SUBMENU EN ODOO.
Para generar un menú y submenú se utiliza la etiqueta <menuitem> en un archivo .xml, Debemos estar familiarizados con los siguientes atributos:
<menuitem name = “My menú “ id = “menú_id “ parent = “ menu_id“ action = “action_id“ sequence =” 10“/>
name= El nombre del menú.
id= Identificador del elemento de menú, debe ser único.
Parent= Identificador (id del menú padre) externo del menú principal en la jerarquía.
Action= Identificador de la acción a ejecutar, en su caso.
Sequence = Se utiliza para ordenar los registros, se recomienda colocar índice no consecutivos para ordenar los menuitem (10, 20, 30).

 ejemplo: Archivo .XML




martes, 16 de junio de 2015

CONFIGURACIÓN DE SERVIDOR DE CORREO DE ODOO CON GMAIL



CONFIGURACIÓN DE SERVIDOR DE CORREO DE ODOO CON GMAIL

            Para la configuración o sincronización del servidor de correos en odoo con tu cuenta de correo de Gmail, se deben seguir los siguientes pasos:



Se ingresa a odoo y se dirige a la parte de configuración, en el menú lateral, la sección de configuración técnica se selecciona Email, esto desplegará unas opciones de las cuales se seleccionara servidores de correo, se selecciona esta opción y se mostrara una vista tipo tree listando los servidores de correo configurados, por defecto debe salir uno con la descripción localhost, sin embargo este no está configurado, a continuación se selecciona y edita. Tal como lo expresa la siguiente imagen.  





Al editar se deben colocar los siguientes datos:
  • Descripción: allí se colocar el nombre o la descripción que se le va a dar al servidor.
  • Prioridad: es el nivel de prioridad que tenga el servidor, en cuanto a comunicación vía correo electrónico, se sugiere colocar el valor 1.
  • Servidor  SMTP: la dirección del servidor del correo con el que se vaya a comunicar, esta dirección difiere por el tipo de correo se vaya a configurar, para el caso de Gmail la dirección del servidor es: smtp.gmail.com
  • Puerto SMTP: es el puerto por el cual se va a comunicar con el servidor, para esta ocasión es el 465.
  • Seguridad de la conexión: se selecciona SSL/TLS
  • nombre de usuario: la dirección de correo electrónico con la cual se va a sincronizar.
  • contraseña: la contraseña del correo con el cual se va a sincronizar.

            Luego de llenar los campos se presiona la opción de probar conexión y se desplegara un cuadro en el cual se dará respuesta de la conexión.  Realice los pasos tal y como los muestra la imagen a continuación:





         Si se muestra esta respuesta quiere decir que hay conexión, sin embargo en la cuenta de Gmail no se ha autorizado la sincronización, a continuación debe dirigirse a la bandeja de entrada en su correo electrónico, allí debe tener un mensaje de google, indicando que se está intentando acceder a su cuenta desde una aplicación y te proporciona un link para autorizar el acceso. Habiendo hecho esto debe presionar nuevamente el botón de probar conexión. A continuación debe  darle un mensaje indicando que la conexión se realizó con éxito, se evidencia con la siguiente imagen el ejemplo.





Habiéndose realizado la conexión con éxito, se presiona el botón de guardar, listo, ya tiene la configuración del servidor de correo realizada.

En caso de duda o algun aporte pueden escribir al siguiente correo 

juventudproductivabicentenaria@gmail.com



Autor: Jose Mancilla

lunes, 20 de abril de 2015

WKHTMLTOPDF para Odoo en Debian


Como actualizar la versión de WKHTMLTOPDF en el Sistema Operativo Canaima GNU/Linux 4.1 basada en Debian

Cuando intentamos imprimir cualquier reporte, por ejemplo, una factura, en Odoo Version 8, nos aparece un recuadro o ventana en la esquina superior derecha de nuestra pantalla, informándonos la necesidad de actualizar la versión de WKHTMLTOPDF, esto con el fin de obtener una correcta visualización de los encabezados y pies de página.

  1. Descargamos la versión mas reciente dependiendo del sistema operativo y la arquitectura de nuestro equipo, desde la siguiente direccion: http://wkhtmltopdf.org/downloads.html en nuestro caso Canaima GNU/Linux 4.1 basada en Debian :
Flavor
Downloads
Comments
Linux (Debian Wheezy)
built on Debian 7
  1. Seleccionamos y descargamos el paquete .deb wkhtmltox-0.12.2.1_linux-wheezy-i386.deb
  2. Luego iniciamos el terminal, en modo root y nos ubicamos en la carpeta Descargas (cd Descargas) e instalamos con la siguiente linea de comandos: sudo dpkg -i wkhtmltox-0.12.2.1_linux-wheezy-i386.deb
  3. Finalmente, reiniciamos el servicio de odoo para poder establecer los cambios y así visualizar e imprimir los reportes

     Nota: Debe verificar si su Sistema Operativo es de 32-bit o 64-bit y descargar  la versión según su necesidad. podemos verlo fácilmente desde la opción Configuración del sistema – Detalles

lunes, 16 de marzo de 2015

Como desarrollar un módulo en odoo.


Contenido de un módulo:

Para proceder a crear nuestro primer módulo tenemos que descarga la carpeta odoo-8.0 en la siguiente ruta https://github.com/odoo/odoo

Se debe crear una carpeta llamada local_addons en (carpeta personal) allí iniciaremos a crear nuestros módulos. 

 
 
Se procede a crear dentro (local_addons) una nueva carpeta con el nombre de nuestro módulo ejemplo modo_prueba.




Luego en la carpeta (modo_prueba) debemos de crear cuatro archivos fundamentales para crear el primer modulo instalable.


– Crear un archivo con la descripción del módulo: __openerp__.py
– Crear los archivos Python que contendrán los objetos.
– Crear los archivos xml para la obtención de datos (vistas, menús, datos de ejemplo,...)
- Opcionalmente crear listados, asistentes y flujos de trabajo.
Descripción detallada de cada uno de los archivos


 
_openerp__.py: Cualquier módulo que creemos debe contener un archivo con este nombre__openerp__.py el cual debe ubicarse en la raíz de nuestro módulo.

Archivo __openerp__.py





Modo_prueba.py describiremos el nombre de la clase y cada uno de los atributos que queremos ver en el módulo.

Para la declaración de nuestro objeto podemos comenzar con los siguientes atributos:
• boolean
• integer
• float
• char

Archivo modo_prueba.py  




Los archivos xml ubicados en el directorio del módulo se pueden utilizar para modificar la estructura de la base de datos también son utilizados para otros propósitos entre los que podemos destacar:

Cargar datos iniciales o datos de demostración.
Declaración de vistas.
Declaración de listados.
Declaración de asistentes.
Declaración de flujos de trabajo.

Formulario form

El record tiene la acción de almacenar vistas

 Archivo modo_prueba_view.xml

El segundo record tiene la misma descripción que el primero, solo que este es un formulario tree.



 
En esta etiqueta creamos un id_ del action , hacemos llamados de los formularios form y tree para que estos puedan ejecutarse en la vista.


 





 
El archivo __init__.py, como cualquier módulo de Python, es ejecutado al inicio del programa. En el incluiremos los archivos de Python que necesiten ser cargados. Por lo tanto, si creamos un archivo "modulo.py", que contiene la descripción de nuestros objetos, la incluimos en una línea en __init__.py
 


Actualizamos el servidor

En esta ruta estamos ingresando a la carpeta odoo-8.0,con el comando openerp-server estamos ejecutando el  servidor de odoo, y el "-r odoo" es el usario de postgre



Luego cargamos el servidor localhost/8069 presionamos Enter


Una vez ya cargado buscamos en la configuración el modulo que creamos.




 Actualizamos el modulo en donde dice (Actualizar lista de módulos)





Luego realizamos la instalación a través de la consola

La ruta que se muestra en la imagen es la dirección donde se encuentra nuestro modulo. Con los caracteres (/,..) salimos de la carpeta odoo-8.0 y entramos a la carpeta local_addon. El “–d odoo” es el nombre de la base de datos con la cual se está trabajando, y el “–i modo_prueba” sería la carpeta donde se localizan los módulos y procedemos a instalar
 

 volvemos a cargar el servidor

 



Nos aparecerá ya instalado




Así  se muestra la gráfica de nuestro primer módulo:

La vista for: así se muestra la vista


La vista tree: así se muestra la vista