Odoo8的一次js前端调试过程

今天群里有网友上传了一个模块,就是在非debug状态下,右上角的登录用户位置同时显示出数据库的名称,但网友反映安装此模块后,原来的聊天按钮会不见了,然后查看了一下源码,经过调试后,大致找到问题所在。

原来显示的样示如图,安装模块后显示的样示如图,看了一下代码如下图:

Odoo8的一次js前端调试过程_第1张图片

主要只是屏蔽了红色框那一行,这样在非调试状态下也显示出来数据库名称。为什么安装这个以后,原来的消息按钮不显示了呢?经跟踪查看im_chat模块,原来在im_chat模块中也重写了该do_update方法,消息按钮也是在此方法中加载的,如下图:

Odoo8的一次js前端调试过程_第2张图片

在原来的模块中,重写do_update方法后,没有执行super(),所以该do_update在其它模块中的代码就不会执行了,所以该消息按钮就不会显示了。

知道原因了就比较好处理了,我将原模块中的代码改为如下图所示:

Odoo8的一次js前端调试过程_第3张图片

这样通过super方法执行了其它模块中继承自do_update的内容,同时在update_promise对象的done方法中加上判断,在非调试状态下登录名称后加上数据库名的显示,此至功能已经测试通过。

你可能感兴趣的:(Odoo8的一次js前端调试过程)