2017-03-09 47 views
1

我可以在窗體視圖標題或樹狀視圖行中成功添加按鈕,但是我想在樹狀視圖標題中添加一個自定義按鈕,它位於Odoo 8中的「創建」和「導入」按鈕附近。我該怎麼做?如何在「創建」和「導入」按鈕附近的樹視圖標題中添加按鈕Odoo 8?

enter image description here

+0

要做到這一點,通過將它們添加到視圖中來添加按鈕會更加複雜。在過去,我使用了一些hacky的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 /project_button.xml與模板,它取代「創建」按鈕,如果我用project.project模型

<?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)後,添加我的JS腳本在web.asset_backend(創建文件PROJ ECT /視圖/ 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節 'qweb' 爲靜態/ src目錄/ XML/project_button.xml, 'JS' 的添加'data'部分的static/src/js/task_list.js和放置文件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

嗨有沒有什麼辦法用模型中的值替換「Создатьновыйпроект」?謝謝 –

相關問題