我试图在标题按钮(工作流程按钮)上触发JavaScript事件。
这是我的js
var _t = instance.web._t, QWeb = instance.web.qweb;
instance.web.FormView.include({
init: function() {
this._super.apply(this, arguments);
},
events: {
"click .resume_consultation": "resume_consultation",
},
resume_consultation : function(ev) {
ev.preventDefault();
ev.stopPropagation();
}
})
按钮的xml
<header>
<button type="object" class="resume_consultation"
name="testonly"
string="Test Only"/>
</header>
蟒蛇
@api.multi
def testonly(self):
return False
该事件未调用。但是我知道FormView中的
init
已执行。只是事件不是。有人知道如何针对工作流程按钮吗?
最佳答案
首先添加以下代码的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>
而是在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>
是的,在清单/ openerp文件中定义js文件和xml文件。
希望对您有帮助。