2016-08-08 18 views
1

ツリービューの[作成]ボタンの前または後にボタンを追加して、別のビューのアクションを呼び出します。odooにボタンを追加するには?

しかし、ヘッダータグはxmlで作業していないので、odooのヘッダにボタンを追加しています。

+1

どのようなビューでボタンを追加しますか? – mokiSRB

+0

こんにちは@mokiSRB、私は、デフォルトの作成ボタンの前または後にボタンを追加したいと思います。 –

+1

そのボタンは典型的なビュー拡張( 'ir.ui.view'レコード)に配置することはできません。要件を満たすには、odooクライアント全体(QWebビュー)を拡張する必要があります。 – CZoellner

答えて

2

ListView.buttons QWEBテンプレートを拡張する必要があります。

ボタンを追加しますstatic/src/xml下QWEBテンプレートを定義します。

<?xml version="1.0" encoding="utf-8"?> 

<template xml:space="preserve"> 
    <t t-extend="ListView.buttons"> 
     <t t-jquery="button.oe_list_add" t-operation="after"> 
      <button t-if="widget.dataset.model == 'model_name'" class="oe_button oe_my_button oe_highlight" type="button">My Button</button> 
     </t> 
    </t> 
</template> 

利用JavaScriptボタンのロジックを定義するために(static/src/js下のファイルを作成します):

openerp.module_name = function(instance){ 

instance.web.ListView.include({ 
    load_list: function(data) { 
     this._super(data); 
     if (this.$buttons) { 
      this.$buttons.find('.oe_my_button').off().click(this.proxy('do_the_job')) ; 
     } 
    }, 
    do_the_job: function() { 

     this.do_action({ 
      name: _t("View name"), 
      type: "ir.actions.act_window", 
      res_model: "object", 
      domain : [], 
      views: [[false, "list"],[false, "tree"]], 
      target: 'new', 
      context: {}, 
      view_type : 'list', 
      view_mode : 'list' 
     }); 
    } 
}); 
} 

新しいビューを定義します。モジュールアセットが追加されます(module_name_view.xml):

<?xml version="1.0" encoding="utf-8"?> 
<openerp> 
<data> 
     <template id="assets_backend_module_name" name="module_name assets" inherit_id="web.assets_backend"> 
     <xpath expr="." position="inside"> 
      <script type="text/javascript" src="/module_name/static/src/js/script.js"></script> 
     </xpath> 
    </template> 
</data> 

編集__openerp__.pyと、次のセクションを追加します。詳細はBuilding Interface Extensions

'data': [ 
    'module_name_view.xml', 
    ... 
], 
'qweb': ['static/src/xml/*.xml'], 

ルック。

関連する問題