在庫モジュールでは、バーコードスキャナーページはwidget.jsとpicking.xml〜qwebによって処理されます。odoo在庫のウィジェットをオーバーライド
機能を追加するには、この動作を無効にする必要があります。
<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の部分については私がこだわっている:これまでのところ私は、XMLを上書きすることができました。 私はPickingEditorWidget内部の一部の機能の動作をオーバーライドする必要がありますが、widget.jsで、それは最初のオブジェクトopenerp.stockの内側に収容され、その後、全体openerp.stockが関数で上書きされます:私はしました
openerp.stock = function(openerp) {
openerp.stock = openerp.stock || {};
openerp_picking_widgets(openerp);
}
この種のコードがすべてのモジュールに含まれているとしたら、在庫/ widget.js全体を小さな変更で書き換えなくても(たとえば)この関数がどのように動作するかをどのように変更できますか?
this.$('.js_pack_configure').click(function(){
....
})
私はJSの専門家ではないと私はそれを把握することができませんでした...
編集:私は今、私はPickingEditorWidgetを参照してください、dependancesに私のモジュールのマニフェストに在庫モジュールを置く
あるオブジェクトが、それでも私はそれが私の変化(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);
}