В модуле Stock страница сканера штрих-кода обрабатывается widget.js и picking.xml через qweb.
Мне нужно переопределить поведение, чтобы добавить функциональные возможности. До сих пор мне удалось переопределить xml:
<templates id="template" xml:space="preserve">
<t t-extend="PickingEditorWidget">
<t t-jquery="#js_packconf_select" t-operation="after">
<p>Hello World!</p>
</t>
</t>
</templates>
но о части js я застрял. Мне нужно переопределить поведение некоторых функций внутри PickingEditorWidget, но в widget.js он сначала содержится внутри объекта openerp.stock, а затем весь openerp.stock перезаписывается функцией:
openerp.stock = function(openerp) {
openerp.stock = openerp.stock || {};
openerp_picking_widgets(openerp);
}
Я видел такой код в каждом модуле, тогда как я могу изменить, как (например) работает эта функция, не переписывая весь файл stock/widget.js с моими небольшими изменениями?
this.$('.js_pack_configure').click(function(){
....
})
Я не эксперт в JS и не мог понять...
РЕДАКТИРОВАТЬ:
Я поместил в манифест своего модуля стандартный модуль в зависимостях, теперь я вижу объект PickingEditorWidget, но все же не могу заставить его работать с моими изменениями
мой код (widget.js):
function openerp_picking_widgets_extended(instance){
var module = instance.mrp_extended;
module.PickingEditorWidgetExtended = instance.stock.PickingEditorWidget.include({
renderElement: function(){
this.$('.js_pack_configure').click(function(){
<my code>
});
this.$('.js_validate_pack').click(function(){
<my code>
});
this._super();
},
});
}
openerp.mrp_extended = function(openerp) {
openerp.mrp_extended = openerp.mrp_extended || {};
openerp_picking_widgets_extended(openerp);
}