2017-03-09 181 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

嗨有没有什么办法用模型中的值替换“Создатьновыйпроект”?谢谢 –

相关问题