odoo14 kanban视图和tree视图顶部按钮添加
如何在tree视图和kanban视图 顶部添加新按钮?

这里主要需要两个文件:xml继承按钮文件、js按钮操作文件。
以kanban视图为例,新建 static/src/xml/xxx.xml 文件
<?xml version="1.0" encoding="UTF-8"?> <templates> <t t-extend="KanbanView.buttons" t-name="AddsKanbanView.buttons"> <t t-jquery="button" t-operation="after"> <button type="button" class="btn btn-primary o_button_add_kanban_btn">新按钮</button> </t> </t> </templates>
新建 static/src/js/xxx.js 文件
odoo.define('add.kanban.view.buttons', function (require) {
"use strict";
var core = require('web.core');
var KanbanController = require('web.KanbanController');
var KanbanView = require('web.KanbanView');
var viewRegistry = require('web.view_registry');
var qweb = core.qweb;
var AddKanbanViewController = KanbanController.extend({
buttons_template: 'AddsKanbanView.buttons',
renderButtons: function () {
this._super.apply(this, arguments);
if (this.$buttons) {
var self = this;
this.$buttons.on('click', '.o_button_add_kanban_btn', function () {
return self._rpc({
model: 'edition.store', //需要调用方法的模型
method: 'update_edition_store_button', //需要调用的方法
args: [self.getSelectedIds()], //传参
}).then(function(res){
location.reload() //更新后刷新页面
});
});
}
}
});
//注册你的插件
var AddsKanbanView = KanbanView.extend({
config: _.extend({}, KanbanView.prototype.config, {
Controller: AddKanbanViewController,
}),
});
viewRegistry.add('add_buttons_kanban', AddsKanbanView);
});
然后,在你需要引入按钮的视图位置,写入绑定的js名称:
<!--看板--> <record id="edition_store_kanban_view" model="ir.ui.view"> <field name="name">xxx</field> <field name="model">edition.store</field> <field name="arch" type="xml"> <kanban js_class="add_buttons_kanban">
最后,记得在views目录中引入你的js文件,以及在__manifest__.py中引入你的xml文件。

浙公网安备 33010602011771号