Odoo中文网|Odoo实施培训

 找回密码
 立即注册
搜索
热搜: Odoo OpenERP 实施
查看: 5996|回复: 0

Odoo 8.0模块中增加延时自动消失的提示

[复制链接]

14

主题

35

帖子

122

积分

注册会员

Rank: 2

积分
122
发表于 2015-11-3 21:24:52 | 显示全部楼层 |阅读模式
odoo中,如果必要栏位没有值,在保存时右上角会有如下图的提示,该提示会延时并自动关闭。
有网友问如何在自己的模块中增加这样的提示,以方便用户在操作时,能提示一些必要的信息。下面例出大致的步骤以供参考:

1.一般来说我们是在py中执行到一些业务逻辑的时候需要提示,所以先看在py脚本中怎么来写,格式如下:
def get_express_list(self, cr, uid, ids, context=None):  
        obj = self.browse(cr,uid,ids,context=context)  
        return {  
            'type': 'ir.actions.client',  
            'tag': 'get_sf_express_list',  
            'target': 'new',  
            'params':{'num_express'bj.num_express},  
        }  

我这个是用户点一个按钮,执行前端的一个js动作。这里的tag很重要,跟后面的js代码定义要一致。

2.然后在模块的src/js/中建一个js文件,脚本大致内容如下:
openerp.rhwl = function(instance) {  
    var _t = instance.web._t,  
        _lt = instance.web._lt;  
    var QWeb = instance.web.qweb;  

    instance.rhwl.getexpresslist = instance.web.Widget.extend({  
        init: function(parent,action){  
            this._super(parent, action);  
            this.action = action;  
        },  
        start: function () {  
            var self = this;  
            self.do_warn(_t("Get"), _t("获取成功"));  
        }  
    });  

    instance.web.client_actions.add("get_sf_express_list", "instance.rhwl.getexpresslist");  
}  

前面openerp.rhwl中的rhwl是你的模块名称,这是odoo通用格式,红色的内容与py脚本中tag属性值要一致,然后在start方法调用do_warn或do_notify两个函数都可以。
这个js大致的功能是这样子,在你的模块中给instance对象定义一个新的继承自instance.web.Widget对象的新对象instance.rhwl.getexpresslist,并且将该对象注册到前端活动中,前后端通过get_sf_express_list字串来进行沟通调用。

3.把js文件加载到模块__openerp__中,升级模块,你就可以看到效果了,我这里提示的信息是固定的,其实可以把标题和内容通过参数方式传过来。py调用时"params"可以设定传入的参数名和值(就是dict的key和value),在js中通过this.action.params来获取。

原文:vnsoft

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|技术支持|开发手册|Odoo中文网-远鼎旗下odoo培训网站 ( 苏ICP备15039516号 )

GMT+8, 2024-3-29 05:07 , Processed in 0.017378 second(s), 9 queries , Xcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表