2017-04-06 17 views
0

在庫モジュールでは、バーコードスキャナーページは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); 
} 

答えて

0

私のコードをこのように修正しました:

.... 
module.PickingEditorWidgetExtended = instance.stock.PickingEditorWidget.include({ 
    renderElement: function(){ 
     this._super(); 
.... 
関連する問題