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  



  



  

No hay comentarios.:

Publicar un comentario

"Hay una fuerza motriz más poderosa que el vapor, la electricidad y la energía atómica. Esa fuerza es la voluntad"- Albert Einstein


Tú comentario nos ayuda a Mejorar..... Gracias!!!