在Odoo 10中继承按钮功能 - 仅限Javascript / XML

时间:2017-10-31 12:17:43

标签: javascript odoo-10

所以,我已经在他们自己的模块中创建了一些具有自己功能的按钮。它们会显示在主POS屏幕上。

我需要稍微改变功能 - 仅在打开新模态时显示这些按钮 - 在模态内呈现的按钮将具有其初始点击功能

(我不知道任何Python)

如何在新模态中继承按钮功能,以使click事件根据每个按钮初始定义执行单独的任务?

我尝试使用

   click_me: function(){
     button1.click ......
     button2.click
}

但由于某种原因,我无法实现这一目标

1 个答案:

答案 0 :(得分:0)

首先在代码后面添加你的js文件:

odoo.define('Modulename.filename', function (require) {
"use strict";

var form_widget = require('web.form_widgets');
var core = require('web.core');
var _t = core._t;
var QWeb = core.qweb;

form_widget.WidgetButton.include({
    on_click: function() {
         if(this.node.attrs.custom === "click"){
            //code//
         }
         this._super();
    },
});
});

之后在xml中添加你的js文件:

<?xml version="1.0" encoding="utf-8"?> <odoo>
        <template id="assets_backend" name="project assets" inherit_id="web.assets_backend">
            <xpath expr="." position="inside">
                         <script type="text/javascript" src="/product_pack/static/src/js/product_pack.js"></script>
            </xpath>
        </template> </odoo>

ather在你的py文件中定义你的点击事件功能

class SalePetOrder(models.Model):
    _inherit = "xyz"

    def java_script(self):
        return {"hello": "world"}

在xml中定义你的函数后:

<data>
   <header>
    <button name="java_script" string="Java Script" type="object" custom="click"/>
   </header>
</data

然后在manifest / openerp文件中定义你的js文件和xml文件。

我希望它可以帮到你。