我正在寻找一个针对odoo的模块,该模块将添加一个按钮以使某些数据与外部提要同步。我已经设法启动并运行了基本行为,但理想情况下,我想在(长时间运行)过程开始/完成时显示通知。
基本前提是我有这个ListController,从那里我想弄清楚如何显示通知。就像您浏览到其他视图时一样,顶部是Loading
。
在github仓库中,似乎有一个NotificationManager
实例化的AbstractWebClient
。在odoo javascript演示中,他们讨论了trigger_up
来向上传播呼叫。在他们的演示文稿中以display_notification为例进行了说明-但由于某种原因,它什么也不做。
有人可以给我一些正确的方向指示,如何使通知生效?
odoo.define('test.sync', function (require) {
"use strict";
var core = require('web.core');
var rpc = require('web.rpc');
var Dialog = require('web.Dialog');
var ListController = require('web.ListController');
ListController.include({
renderButtons: function($node) {
this._super.apply(this, arguments);
if (this.$buttons) {
let filter_button = this.$buttons.find('.sync_button');
filter_button && filter_button.click(this.proxy('do_sync')) ;
}
},
do_sync: function () {
this.trigger_up('display_notification', { title: 'Move Zig', message: 'All your bases are belong to us' });
}
});
})
答案 0 :(得分:1)
在控制器内部或渲染器中只需编写以下代码:
this.do_notify('title', 'message :)');
请参阅文档here。 基本上,do_notify和do_warn方法是在ServiceMixin类中定义的,该类默认情况下由抽象控制器和渲染器继承:: I think ::