Odoo 中的客户端操作
Client Action in Odoo
在 Odoo/openerp 文档中,它说 'client actions' 完全是在客户端实现的,就是这样。他们没有为 Odoo v10 提供任何示例详细文档。
有没有人确切知道如何实施客户行动及其全部潜力。 (我们可以通过客户端操作实现的可能性。)
客户端操作基本上是 xml 中定义的菜单项,相应的操作映射到小部件。
以下是客户端操作的实现:
您的 XML 文件将包含以下代码:
<record id="some-report-client-action" model="ir.actions.client">
<field name="name">Report Page</field>
<field name="tag">report.report_page</field>
</record>
<menuitem id="some-report-menuitem" name="Some" parent="pdf_report"
action="some-report-client-action"/>
创建用于创建小部件的 js 文件。它将包含以下代码:
openerp.guard_payments = function(instance, local) {
var _t = instance.web._t,
_lt = instance.web._lt;
var QWeb = instance.web.qweb;
local.HomePage = instance.Widget.extend({
template: 'MyQWebTemplate',
init: function(parent, options){
this._super.apply(this, arguments);
this.name=parent.name;
},
start: function() {
this._super.apply(this, arguments);
console.log('Widget Start')
},
});
//Following code will attach the above widget to the defined client action
instance.web.client_actions.add('report.report_page', 'instance.guard_payments.HomePage');
}
如您所见,我们可以创建一个完全自定义的 QWeb 模板并向其添加任何功能。
基本上这是 Odoo 提供的最好的部分
在 Odoo/openerp 文档中,它说 'client actions' 完全是在客户端实现的,就是这样。他们没有为 Odoo v10 提供任何示例详细文档。
有没有人确切知道如何实施客户行动及其全部潜力。 (我们可以通过客户端操作实现的可能性。)
客户端操作基本上是 xml 中定义的菜单项,相应的操作映射到小部件。
以下是客户端操作的实现:
您的 XML 文件将包含以下代码:
<record id="some-report-client-action" model="ir.actions.client">
<field name="name">Report Page</field>
<field name="tag">report.report_page</field>
</record>
<menuitem id="some-report-menuitem" name="Some" parent="pdf_report"
action="some-report-client-action"/>
创建用于创建小部件的 js 文件。它将包含以下代码:
openerp.guard_payments = function(instance, local) {
var _t = instance.web._t,
_lt = instance.web._lt;
var QWeb = instance.web.qweb;
local.HomePage = instance.Widget.extend({
template: 'MyQWebTemplate',
init: function(parent, options){
this._super.apply(this, arguments);
this.name=parent.name;
},
start: function() {
this._super.apply(this, arguments);
console.log('Widget Start')
},
});
//Following code will attach the above widget to the defined client action
instance.web.client_actions.add('report.report_page', 'instance.guard_payments.HomePage');
}
如您所见,我们可以创建一个完全自定义的 QWeb 模板并向其添加任何功能。
基本上这是 Odoo 提供的最好的部分