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