即使一个人,也要活得像军队一样!

Odoo13-- 通知--延时弹框的通知提醒

Odoo 本身存在异常、错误等提示信息,一般是在后台代码中进行抛出UserError或者其它类型的错误。
这种情况就阻止了程序的正常进行。

除此之外,还有onchange()方法返回的弱警告提醒,此时并不会中断程序。

那么除却以上熟为人知的提醒,还有类似于界面右上角的自动延时的通知提醒。如:必填字段没有填,会有类似的提醒

重点姿势

姿势一、前端控制(即js大法)

显示通知的最常见方法是使用ServiceMixin的两种方法:
do_notify(title,message,sticky,className)do_warn(title,message,sticky,className)

参数说明:
title:字符串。这将显示在顶部作为标题。
message:字符串,通知的内容。
sticky:布尔值,可选。如果为true,则通知将一直保留到用户将其关闭为止。否则,通知将在短暂的延迟后自动关闭。
className:字符串,可选。这是一个CSS类名称,它将自动添加到通知中。默认是bg-warning

实战姿势:

1
2
3
this.do_notify(_t("Success"), _t("Your signature request has been sent."));

this.do_warn(_t("Error"), _t("Filter name is required."));

姿势二、后端控制(python大法)

只需要在模型中定义一个方法,返回一个客户端动作。
其中tag指定为display_notification。再指定参数params
参数与js使用的参数方式相同。

直接上姿势:

1
2
3
4
5
6
7
8
9
10
11
def show_notification(self):
return {
'type': 'ir.actions.client',
'tag': 'display_notification',
'params': {
'title': _('Success'),
'message': _('Your signature request has been sent.'),
'sticky': True, #不会延时关闭,需要手动关闭
'className': 'bg-danger' # 红色背景
}
}

以上
–end–
祝大家熟练的使用姿势并运用!

-------------本文结束感谢您的阅读-------------