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文件。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下