需求说明
工作中遇到需要调整odoo原生的tree hearder button显示逻辑,又不可以直接跳转odoo源码,故新加个js全局替换对应的方法,以实现对应功能的同时不影响后期odoo版本升级。
odoo 全局调整list_controller方法示例
- 创建一个js放到static/src/js中
odoo.define('my_module.list_header_buttons', function (require) {
'use strict';
const ListController = require('web.ListController');
const viewUtils = require('web.viewUtils');
ListController.include({
// 重写 _renderHeaderButtons 方法
_renderHeaderButtons: function () {
// 在这里添加你的自定义逻辑
console.log('1111');
return this._super.apply(this, arguments);
},
});
});
-
在__manifest__.py文件中注册js(assets/web.assets_backend)
-
代码说明
- ListController.include中可以重写任意原始list方法,方法名不存在则相当于扩展新的方法。
-
form_controller和kanban_controller等亦可以同样操作。