【问题标题】:How to add button in odoo?如何在odoo中添加按钮?
【发布时间】:2016-08-08 07:28:49
【问题描述】:

我想在树视图中的“创建”按钮之前或之后添加一个按钮,该按钮调用另一个视图的操作。

但是当我尝试标头标记在 xml 中无法在 odoo 的标头中添加按钮时。

【问题讨论】:

  • 你想在什么视图中添加按钮?
  • 嗨@mokiSRB,我想在默认创建按钮之前或之后添加一个按钮。
  • 该按钮不能放入典型的视图扩展中(ir.ui.view 记录)。您需要扩展整个 odoo 客户端(QWeb 视图)以满足您的要求。
  • 您能否分享一些可以帮助我做到这一点的参考资料,因为我对 js 不太熟悉。
  • 查看OCA Web Modules 以获取提示,您需要做些什么才能实现这样的目标。

标签: openerp odoo-8 odoo-9 odoo-view


【解决方案1】:

你需要扩展ListView.buttonsQWEB模板。

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 并添加以下部分:

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

查看Building Interface Extensions了解更多详情。

【讨论】:

  • @user_123 检查问题Tags。它不是为Odoo 11 设计的。
猜你喜欢
  • 2020-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-11
相关资源
最近更新 更多