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
OpenERP

Actualizando modulos de OpenERP sin despeinarme

Antes que nada he de contarles que soy desarrollador de módulos de OpenERP entre otras cosas, cuando desarrollas módulos pasas mucho tiempo grabando, recargando, buscando el bendito modulo que escribiste, clickando actualizar, esperando que se actualice, si tienes suerte y no hay errores en el código o en las vistas, pues ya lo hiciste, sino toca tratar de arreglar, los errores en el xml de las vistas nos impedirán acceder al cliente Web. Como pueden ver no es una tarea muy grata, de hecho yo odiaba perder tanto tiempo en estas tareas repetitivas. Sigue leyendo

Estándar