Odoo, OpenERP, Programación

Sobreescribir Metodos Odoo v8 Nueva API

En este post hablare sobre heredar y sobrescribir métodos con la versión 8 de la API, la versión mas nueva, hay algunas diferencias con la anterior.

Sobrescribir método write()

class res_partner(models.Model):
    _inherit='res.partner'

    @api.multi 
    def write(self, values):
        if(condicion is True):
            values.update['campo'] is True # Actualizamos values
        return super(res_partner, self).write(values) #llamamos al método del padre con los valores actualizados

Sobrescribir el método write es muy sencillo, incluimos el decorador @api.multi, esto es muy importante, y luego sobrescribimos write(), en values se guardaran los valores que se van a escribir y sobre los que operaremos con values.update[‘indice’], cuando terminemos, llamamos al método write de la clase padre y listo.

Sobreescribir metodo create()

class res_partner(models.Model):
    _inherit='res.partner'

    @api.model
    def create(self, vals, context=None):
        new_id = super(res_partner, self).create(vals)
        new_object = self.env['res.partner'].browse(new_id.id)
        if new_object.campo1:
            new_object.write({'campo2': valor,'campo3':"Cadena"})
        return new_id

Hacer lo propio con create es un poco mas complicado, en este caso tenemos que incluir el decorador @api.model, llamamos al método create del padre para obtener el id del nuevo registro, y a través de browse podemos acceder a los valores del registro en creación, cuando terminamos, retornamos la id del nuevo registro.

Anuncios
Estándar
Odoo, OpenERP, Programación

Heredar y modificar modelos en Odoo

Hola a todos voy a tratar de ponerme al día después de mucho, así que voy a escribir una serie de artículos de un tirón aprovechando que tengo tiempo.
Este articulo es sobre heredar modelos en Odoo, para que sirve esto? pues para modificar, añadir, quitar campos en nuestros modelos. Sigue leyendo

Estándar