Publicidad

miƩrcoles, 4 de marzo de 2015

Definicion de Clases Api Odoo

API Odoo



    Como todos sabemos Odoo anteriormente OpenERP, ah modificado su NĆŗcleo de desarrollo, ofreciendo nuevas alternativas para la creaciĆ³n de MĆ³dulos para este ERP, ahora trae a nosotros los modulos Website, que permiten integrar una e-shop, un sitio web, aƱadir temas, chat de contacto, etc.
Podemos observar tambiĆ©n modificaciones al Framework de Desarrollo de MĆ³dulos, una nueva Api que cambia el Aspecto del desarrollo, pero que es compatible con el Framework de la versiĆ³n 7 de OpenERP,  mis proximas entradas seran con aspectos importantes de esta nueva Version.

DefiniciĆ³n de Clases con la nueva API (Odoo)

Para la creaciĆ³n de una clase con la Api de Odoo se utiliza el cĆ³digo siguiente:

from openerp.osv import fields, osv
from datetime import datetime
import time


class mi_clase_odoo(osv.osv):
    _name = 'mi.clase.odoo'
    #Definicion de Campos
    name = fields.Char('Nombre del Alumno', required=True)
    date_act = fields.Date('Fecha')
    _defaults = {  
        'date_act': lambda *a: time.strftime('%Y-%m-%d'),  
        }
mi_clase_odoo()

En OpenERP 7 se crearĆ­a con el cĆ³digo:


from openerp.osv import fields, osv
from datetime import datetime
import time


class mi_clase_odoo(osv.osv):
    _name = 'mi.clase.odoo'
    #Definicion de Campos
    _description = 'Grupos'
    _columns = {
        'name':fields.char('Nombre', size=64), 
        'date_act': fields.date('Fecha'),
    }
    _defaults = {  
        'date_act': lambda *a: time.strftime('%Y-%m-%d'),  
        }
mi_clase_odoo()

Ambas formas son Validas en el desarrollo para Odoo, ya que tiene retrocompatibilidad con la definiciĆ³n de clases osv.osv.

Diferencias Odoo y OpenERP7:
  • La primer diferencia es la importaciĆ³n de las librerĆ­as, ahora importamos api y no osv.
  • Al definir la clase heredamos models.Model y en OpenERP osv.osv.
  • Para definir un campo en Odoo, ya no es necesario ingresarlo en un diccionario, ahora se define directamente, primer elemento nombre del campo y seguido del tipo de campo a definir, en OpenERP7 utilizamos el _columns{}.
  • Definir campos por defecto se utiliza de la misma manera.
Este es mi primer Aporte sobre la Api de Odoo, espero que sea de su agrado.

8 comentarios:

  1. Muy buena aportaciĆ³n de introducciĆ³n del API de Odoo, espero tus nuevas publicaciones respecto a los cambios entre las versiones, sobre todo, como hacer compatibles algunos mĆ³dulos de Openerp a Odoo, que aspectos debemos revisar para poder hacer esta actualizaciĆ³n de mĆ³dulos. Saludos.

    ResponderBorrar
  2. Al momento de crear un nuevo modulo y generar el ejecutable me sale este error ImportError: No module named osv

    ResponderBorrar
    Respuestas
    1. Que tal revisa que este definido esto en la cabecera principal:

      from openerp.osv import fields, osv

      Borrar