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文件。

 

posted @   技术创造世界  阅读(489)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示