Как переопределить action_registry js в odoo [12.0] - PullRequest
1 голос
/ 28 апреля 2020

У меня есть следующий js файл, который обрабатывает виджет, и я хотел бы перезаписать и добавить код для функции пользовательских событий, но когда я попытался создать экземпляр, кажется, что ничего не было на объекте:

Это ссылка на скрипт, который я хочу перезаписать

odoo.define('my_module.my_report', function (require) {
'use strict';
var myWidget = AbstractAction.extend(ControlPanelMixin, {
        custom_events: {
             },
        }
        core.action_registry.add('my_report', myWidget );

        return myWidget 
   });
});

Я попытался унаследовать, используя следующее:

var InheritedWidget = require('my_module.my_report); 

, а также:

var InheritedWidget = core.action_registry.get('my_report');

и когда я пытался переопределить, ничего не происходило:

InheritedWidget.include({
    custom_events: {
     //My custom code goes here
       }
})

Вы знаете, как переопределить этот виджет или метод?

1 Ответ

2 голосов
/ 28 апреля 2020

Вам необходимо расширить custom_events существующего виджета.

var InheritedWidget = require('my_module.my_report'); 

InheritedWidget.include({
    custom_events: _.extend({}, InheritedWidget.prototype.custom_events, {
        //My custom code goes here
    }),
});

Подробнее см. В документации по системе событий .

...