如何在“创建”和“导入”按钮Odoo 8附近的树视图标题中添加按钮?

时间:2017-03-09 11:56:02

标签: button header treeview openerp odoo-8

我可以在表单视图标题或树视图行中成功添加按钮,但我想在Odoo 8中“创建”和“导入”按钮附近的树视图标题中添加自定义按钮。我该怎么做?

enter image description here

1 个答案:

答案 0 :(得分:4)

我找到了解决问题的方法!如果我使用project.project模型,我会替换create按钮。

1)我为我的按钮创建了一些js脚本( static / src / js / task_list.js )和点击监听器:

ctrl+space

2)之后我用模板创建 static / src / xml / project_button.xml ,如果我使用project.project模型,则替换“Create”按钮

 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',
        }
}
});
}

3)之后我在web.asset_backend中添加我的js脚本(我创建文件 project / views / project.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>

4)最后我为 static / src / xml / project_button.xml 添加项目/ __ openerp__.py部分'qweb',为 static / src / js /添加'js' task_list.js 并将文件 views / 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>

我的按钮成功替换了project.project模型中的旧按钮。

相关问题