Odoo节目通知

时间:2019-02-18 03:09:31

标签: javascript odoo

我正在寻找一个针对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'   });         

        }

    });

})

1 个答案:

答案 0 :(得分:1)

在控制器内部或渲染器中只需编写以下代码:

this.do_notify('title', 'message :)');

enter image description here

请参阅文档here。 基本上,do_notify和do_warn方法是在ServiceMixin类中定义的,该类默认情况下由抽象控制器和渲染器继承:: I think ::