Programacion Interactiva

Descubre una Nueva y Poderosa Herramienta.

FrameWork de Nueva Generacion

Acceso a tu Informacion desde cualquier Dispositivo con Navegador.

Enfoque en el Backend

Frontend de forma facil con Odoo y XML.

Creacion de Verticales

Creacion de nuevas Verticales Conquistando nuevos Mercados.

Tu marca aqui mismo

Llega a miles de personas.

Publicidad

Mostrando las entradas con la etiqueta override odoo. Mostrar todas las entradas
Mostrando las entradas con la etiqueta override odoo. Mostrar todas las entradas

martes, 22 de septiembre de 2015

Override Metodos Odoo

Extender Funciones en Odoo (MƩtodo Super)


    Al momento de desarrollar, muchas veces necesitamos hacer un override a un mĆ©todo de una clase heredada, esto lo podemos realizar con ayuda del metodo super propio de Python.

La estructura es la siguiente:

@api.multi
def MetodoClase(self,):
    .... Aqui mi Codigo
    return super(ClaseHeredada, self).MetodoClase()
    Primero necesitamos definir los decoradores correspondientes del MĆ©todo, posteriormente solo extender mediante el mĆ©todo super de Python, aquĆ­ puedo darles un consejo, el mĆ©todo super puede ser asignado a una variable y el orden de la variable afectara el comportamiento del mĆ©todo, en la sintaxis de arriba primero ejecutarĆ­a mi código y posterior a esto el mĆ©todo Original, si quisiĆ©ramos cambiar este orden bastarĆ­a con esto:

@api.multi
def MetodoClase(self,):
    res = super(ClaseHeredada, self).MetodoClase()
    .... Aqui mi Codigo
    return res

Ejemplo Completo de un mƩtodo Super:

# -*- encoding: utf-8 -*-
############################################################################
#    (c) 2015 German Ponce Dominguez
#    All Rights Reserved.
#    info skype: german_442 email: (german.ponce@outlook.com)
############################################################################

import itertools
from lxml import etree

from openerp import models, fields, api, _
from openerp.exceptions import except_orm, Warning, RedirectWarning
from openerp.tools import float_compare
import openerp.addons.decimal_precision as dp


class account_invoice(models.Model):
    # Inherits partner and adds invoice information in the partner form
    _inherit = 'account.invoice'

    @api.multi
    def invoice_validate(self):
        res = super(account_invoice, self).invoice_validate()
        return res