Odoo: cómo anular la función original

En Odoo, las cantidades de un producto se calculan cada vez que se abre el formulario de productos. Esto sucede en el modelo product.product ==> function _product_available.

Esta función devuelve un diccionario llamado res.

Ejemplo:

res = {8: {'qty_available': 5000.0, 'outgoing_qty': 1778.5, 'virtual_available': 3221.5, 'incoming_qty': 0.0}}

Ahora quiero modificar esos valores. Logré hacerlo codificándolo directamente en la función original _product_available.

Como esta no es la forma correcta de hacerlo, quiero hacerlo en un modelo heredado. Creo que necesito anular la función? O sobrescribir? No estoy seguro de cómo se llama.

Todo lo que leo sobre hacer esto es bastante vago para mí. No puedo encontrar mucha buena información o ejemplos. También estoy luchando con el hecho de que la función original está escrita en estilo antiguo (osv) mientras uso un nuevo estilo (modelos).

De las piezas de información que recopilé en Internet escribí algo como esto (que no funciona).

class product_product_inherit(models.Model): 
    _inherit = 'product.product'

    #api.v7 because of old style? Also tried .multi and .model...  
    @api.v7
    def _product_available(self, cr, uid, ids, field_names=None, arg=False, context=None):
        #example of modified values. To be made variable after this is working.
        res = {8: {'qty_available': 200.222, 'outgoing_qty': 1778.5, 'virtual_available': 30205.263671875, 'incoming_qty': 0.0}}
        result = super(C, self)._product_available(res)    
        return result

¿Alguien sabe la forma correcta de modificar el diccionario devuelto de la función original _product_available?

Cómo lo hice funcionar:

class product_product_inherit(models.Model): 
    _inherit = 'product.product'

    def _product_available(self, cr, uid, ids, field_names=None, arg=False, context=None):
        for product in self.browse(cr, uid, ids, context=context):
            id = product.id
            res = {id: {'qty_available': 200.222, 'outgoing_qty': 1778.5, 'virtual_available': 30205.263671875, 'incoming_qty': 0.0}}
        return res

Acaba de definir exactamente el mismo método que en el modelo original.

Respuestas a la pregunta(1)

Su respuesta a la pregunta