2017-03-09 7 views
1

私は正常にフォームビューのヘッダーまたはツリービューの行にボタンを追加できますが、私はOdoo 8の "作成"ボタンと "インポート"ボタンの近くのツリービューヘッダーにカスタムボタンを追加したいと思います。「作成」ボタンと「インポート」ボタンの近くでツリービューのヘッダーにボタンを追加する方法Odoo 8?

enter image description here

+0

これを達成するには、ボタンをビューに追加するだけでボタンを追加するほうが複雑です。過去に私はいくつかのハッキーなjavascriptメソッドを使用していました。適切な方法は、他のモデルからのリストビューに影響を与えない方法でリストビューに関連付けられたqwebとjavascriptを拡張することです。 qwebビューとOdooのjavascriptクラスを拡張する経験はありますか? –

+0

@PhillipStack、ありがとう、私はすでに私の問題の解決策を見つけました。 :) –

答えて

3

私は私の問題の解決策を見つけます!私はproject.projectモデルを使用する場合、私は作成ボタンを置き換えます。

1)私は(いくつかのjsスクリプトを作成静的/ SRC/JS/task_list.js)私のボタンのクリックリスナーを持つ:

openerp.project = function (instance){ 
    var QWeb = openerp.web.qweb; 
    _t = instance.web._t; 
    var self = this; 
openerp.web.ListView.include({ 
    load_list: function(data) { 
     this._super(data); 
     if (this.$buttons) { 
      this.$buttons.find('.oe_new_button').off().click(this.proxy('do_the_job')) ; 
      console.log('Save & Close button method call...'); 
     } 
    }, 
    do_the_job: function() { 
     this.do_action({ 
      type: "ir.actions.act_window", 
      name: "Создание нового проекта", 
      res_model: "project.project", 
      views: [[false,'form']], 
      target: 'current', 
      view_type : 'form', 
      view_mode : 'form', 
      flags: {'form': {'action_buttons': true, 'options': {'mode': 'edit'}}} 
     }); 
     return { 
       'type': 'ir.actions.client', 
       'tag': 'reload', 
     } 
} 
}); 
} 

2)私は静的/ SRC/XMLを作成した後私は

<?xml version="1.0" encoding="UTF-8"?> 
<template id="template" xml:space="preserve"> 
    <t t-extend="ListView.buttons"> 
       <t t-jquery="button.oe_list_add" t-operation="replace"> 
         <button t-if="widget.model == 'project.project'" class="oe_button oe_new_button oe_highlight" type="button">Создать новый проект</button> 
         <button t-if="widget.model != 'project.project'" class="oe_button oe_list_add oe_highlight" type="button">Создать</button> 
     </t> 
    </t> 
</template> 

3 project.projectモデルを使用する場合は、ボタンを「作成」置き換えるテンプレートを使用して/project_button.xml、)その後、私は、私はファイルPROJを作成する(web.asset_backendで私のjsスクリプトを追加電気ショック療法/ビュー/ project.xmlの

<?xml version="1.0" encoding="utf-8"?> 
<!-- vim:fdn=3: 
--> 
<openerp> 
    <data> 
     <template id="assets_backend" name="project assets" inherit_id="web.assets_backend"> 
      <xpath expr="." position="inside"> 
       <script type="text/javascript" src="/project/static/src/js/task_list.js"></script> 
      </xpath> 
     </template> 
    </data> 
</openerp> 

4)そして最後に、私は/ __ openerp__.pyセクション静的/ SRC/XML/project_button.xmlのための 'QWEB'、 'jsの' をのためのプロジェクトに追加しますstatic/src/js/task_list.jsと 'data'セクションにファイルviews/project.xmlを配置してください。

'data': [ 
     'security/project_security.xml', 
     ... 
     'views/project.xml', 
    ], 
    'qweb': ['static/src/xml/project_button.xml',], 
    ... 
    'js': 'static/src/js/task_list.js', 

そして、私のボタンは、project.projectモデルの古いボタンに置​​き換わります。

+0

これは役に立ちます。ありがとう@Roman Gr。 –

+1

あなたは良い仕事をしました –

+0

こんにちは "Создатьновыйпроект"をモデルの値で置き換える方法はありますか?ありがとう –

関連する問題