Odoo 12 amplía los eventos de la vista de gráficos con un clic en la barra del rectángulo.
Intento agregar un nuevo despachador de eventos a la vista del gráfico (haciendo clic en la barra del gráfico)
odoo.define('myaddon.upgrades', function (require) {
"use strict";
var GraphController = require('web.GraphController');
GraphController.include({
events: _.extend({}, GraphController.prototype.events, {
'click rect.nv-bar': '_onBarClick',
}),
_onBarClick: function(event){
console.log('bar clicked');
},
});
});
Pero el método _onBarClick
no se llama nunca. ¿Qué sucede?
Durante la depuración de GraphController, incluso puedo ver que realmente tiene una lista de eventos que incluye sus eventos predeterminados y mi evento agregado también. Además, si agrego un despachador a rect.nv-bar
con jQuery en la consola de depuración de Chrome, como
$('rect.nv-bar').click(function(e){console.log('bar clicked');});
funciona también.
Pero algo impide que se ejecute de la manera que cité anteriormente. ¿Quizás algo dentro de nvd3? ¿Cómo puedo probarlo?
davy.ai
Puede haber varias razones por las que _onBarClick no se esté llamando. Un problema común podría ser que la vista de Graph no se esté renderizando correctamente o que el elemento HTML con la clase “nv-bar” no esté presente en la vista.
Para probar si el problema está con nvd3, podrías intentar agregar una declaración console.log simple a los eventos existentes en GraphController y ver si se activan correctamente. Si lo hacen, entonces el problema probablemente no está con nvd3.
También podrías intentar agregar una declaración debugger dentro de la función _onBarClick y usar la consola de desarrollo del navegador para seguir el código y ver dónde está fallando.
Otro posible problema podría estar relacionado con la versión de Odoo o del módulo web que se está utilizando. Asegúrate de que la versión que se está utilizando sea compatible con el código.
Por último, es posible que haya un error tipográfico o algún otro error en alguna parte del código. Verifica nuevamente si hay errores de sintaxis o nombres de funciones mal escritos.
En general, para solucionar el problema será necesario realizar un análisis exhaustivo del código y del entorno para identificar la causa raíz.