前言

在odoo中已经提供好了右上角弹出提示框的接口,我们只需要调用即可;

而提示框的实现又分为前端js实现和后段函数实现,前后端实现的效果相同。

实现效果图

前端实现提示框

在前端中显示提示框最常用的两种方法是使用ServiceMixin的两种方法:do_notify 和 do_warning 。它们的显示效果都一样。它们的语法如下:

do_notify(title,message,sticky,className);
do_warn(title,message,sticky,className);

参数说明:

  • title:字符串类型,用于显示提示框标题;
  • message:字符串类型,用于显示提示框内容;
  • sticky:布尔类型,如果为true则提示框会一直显示在右上角直到用户叉掉,如果为false则过几秒后就会自动消失;
  • className:字符串类型,用来给提示框添加样式。经过测试(warning,danger,info,success),在do_notify中,可用的有bg-warning和bg-danger,默认为warning;在do_warning中,可用的是bg-danger,默认为danger;

使用示例:

self.do_notify('请求成功!', '数据已更新!');
self.do_notify('请求成功!', '数据已更新!', false, 'bg-warning');
self.do_warn("请求失败", "更新数据失败!", true, "bg-danger");

后端实现提示框

后端实现变化较多,但实际上其实大同小异。同时,后端的参数也和前端保持一致。

使用示例如下:

from odoo.tools.translate import _

# 方法一
notification = {
'type': 'ir.actions.client',
'tag': 'display_notification',
'params': {
'title': ('请求成功'),
'message': '下线用户成功',
'sticky': False,
'type': 'success'
},
}
return notification # 方法二
return {
'type': 'ir.actions.client',
'tag': 'display_notification',
'params': {
'title': '未成功下线',
'message': '未成功下线,可能该会话已过期',
'sticky': False,
'className': 'bg-warning'
}
} # 方法三
return {
'type': 'ir.actions.client',
'tag': 'display_notification',
'params': {
'title': _('下线失败'),
'message': _('发生未知错误,可能未响应或其他'),
'sticky': True,
'className': 'bg-danger'
}
}

和前端不同的是,后端可用type类型,和className作用相同;并且后端可用的样式多一点,className可用bg-warning,bg-danger;type可用warning,danger,info,success;以下是各个样式的示例图:

bg-warning

bg-danger

info

success

后端return提示无反应

注意:在后端使用提示框时,如果点击按钮触发的是第一个函数,而你是在第二个函数里面return提示框,那么不会显示任何效果!如下所示,该代码将无响应。

正确的处理方式应该是将返回提示的代码放在第一个触发函数里面,如果你过程中要调用其他的函数,可以让其他函数返回一个结果,然后根据结果来触发不同的提示框,示例如下。

参考链接:

odoo13

odoo右上角显示提示

Odoo 13. Notificatoin (do_notify) with python code

odoo13之右上角弹出提示框的更多相关文章

  1. android标题栏上面弹出提示框(二) PopupWindow实现,带动画效果

    需求:上次用TextView写了一个从标题栏下面弹出的提示框.android标题栏下面弹出提示框(一) TextView实现,带动画效果,  总在找事情做的产品经理又提出了奇葩的需求.之前在通知栏显示 ...

  2. android标题栏下面弹出提示框(一) TextView实现,带动画效果

    产品经理用的是ios手机,于是android就走上了模仿的道路.做这个东西也走了一些弯路,写一篇博客放在这里,以后自己也可用参考,也方便别人学习. 弯路: 1.刚开始本来用PopupWindow去实现 ...

  3. PHP弹出提示框并跳转到新页面即重定向到新页面

    本文为大家介绍下使用PHP弹出提示框并跳转到新页面,也就是大家所认为的重定向,下面的示例大家可以参考下   这两天写一个demo,需要用到提示并跳转,主要页面要求不高,觉得没必要使用AJAX,JS等, ...

  4. [转] 在Asp.net前台和后台弹出提示框

    一.在前台弹出提示框 1.点击"A"标记或者"控件按钮"弹出提示框 <asp:LinkButton ID="lbtnDel" runa ...

  5. SilverLight 页面后台方法XX.xaml.cs 创建JS,调用JS ,弹出提示框

    1.Invoke和InvokeSelf [c-sharp] view plaincopy public partial class CreateJSDemo : UserControl { publi ...

  6. 基于Jquery 简单实用的弹出提示框

    基于Jquery 简单实用的弹出提示框 引言: 原生的 alert 样子看起来很粗暴,网上也有一大堆相关的插件,但是基本上都是大而全,仅仅几句话可以实现的东西,可能要引入好几十k的文件,所以话了点时间 ...

  7. iOS bug 之 H5 页面没有弹出提示框

    描述:在安卓上有提示框,但是在iOS上没有提示框. step 1: 失误,是我没有在正确的位置设置网址. step 2: 修改之后,测试页能弹出提示框,但是正式的页面没有提示框. step 3: 我输 ...

  8. C#自动关闭弹出提示框

    自动关闭弹出提示框(用一个小窗体显示提示信息):例如在一个form窗体中弹出自动关闭的提示框1.首先创建一个弹出提示信息的窗体 AutoCloseMassageBox,在里面拖一个lable控件,去掉 ...

  9. 关于winform窗体关闭时弹出提示框,选择否时窗体也关闭的问题

    在窗体中有FormClosing这个事件,这个事件是在窗体关闭时候运行的.如果要取消某个事件的操作,那么就在该事件中写上e.Cancel=true就能取消该事件,也就是不执行该事件.所以,你要在窗体关 ...

随机推荐

  1. 使用 Dockerfile 文件但是不使用缓存生成镜像

    前一段时候使用 Dockerfile 重新部署 NetCore3.1 项目的时候很顺利,由来由于一些原因,我把以前的镜像删除,如果我们大家继续使用 docker  build 命令去生成镜像的话就会报 ...

  2. C# NModbus RTU通信实现

    Modbus协议时应用于电子控制器上的一种通用语言.通过此协议,控制器相互之间.控制器经由网络/串口和其它设备之间可以进行通信.它已经成为了一种工业标准.有了这个通信协议,不同的厂商生成的控制设备就可 ...

  3. Nginx跳转配置

    1.携带目录调转到后端,后端无目录,location配置如下 例子: i2.jusdacfj.com/ideas_edi/--10.0.2.137:7040/10.0.2.138:7040 locat ...

  4. Java_Stringbuilder和StringBuffer

    StringBuilder和StringBuffer非常类似, 均代表可变的字符串序列. 这两个类都是抽线类AbstractStringBuilder的子类, 方法几乎一样 /******String ...

  5. Kubernetes-17:Kubernets包管理工具—>Helm介绍与使用

    Kubernets包管理工具->Helm 什么是Helm? 我们都知道,Linux系统各发行版都有自己的包管理工具,比如Centos的YUM,再如Ubuntu的APT. Kubernetes也有 ...

  6. Sql 解析XML 解决方案

      1.         1.@XML 为数据传入的XML格式 2.         root 为根目录 3.         <A>为对应需要插入的表,详见一对多或者多对多的xml格式 ...

  7. django环境安装操作整理!

    1. Django 下载地址:https://www.djangoproject.com/download/ 注意:目前 Django 1.6.x 以上版本已经完全兼容 Python 3.x. 2.安 ...

  8. Spider_基础总结7_爬虫基本模板(3个类)

    # 第四章内容--处理不同的网站布局: # 我们想在功能类似的网站上抓取类似内容时,往往这些网站的内容可能布局不一样(相同内容的标签可能不同),由于通常我们爬取的网站数量有限, # 我们没有必要去开发 ...

  9. Java 内功修炼 之 数据结构与算法(二)

    一.二叉树补充.多叉树 1.二叉树(非递归实现遍历) (1)前提 前面一篇介绍了 二叉树.顺序二叉树.线索二叉树.哈夫曼树等树结构. 可参考:https://www.cnblogs.com/l-y-h ...

  10. tcp输入数据 慢速路径处理 tcp_data_queue_ofo

    tcp_data_queue_ofo 在新内核的实现中ofo队列实际上是一颗红黑树.在tcp_data_queue_ofo中根据序号,查找到合适位置,合并或者添加到rbtree中.同时设置dsack和 ...