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

灵感

最近,看到Odoo13企业版有一个im模块,实现聊天的功能。于是突发奇想,能不能结合websocket,实现一个在线聊天室的功能。类似于OA。

先说一下odoo的即时通讯。

odoo的模块

核心技术

通过数据库消息队列

先说最重要的,Odoo 即时通讯使用了 PostgreSQL 数据库的 listennotify 的机制完成。这个机制是 PostgreSQL 数据库私有的,其它数据库未必支持。所以要用 Odoo 是必须要用 PostgreSQL,这是原因之一。参考这里可以了解更多关于 PostgreSQL listen notify 的信息。

阅读全文 »

写在前头

有些看官,对之前的文章 《Onchange方法的使用扩展》还不是很明白。那么为此,特地抽空花时间整理了一下。带各位看官一起深入底层,一探究竟。

写本文之前,又怕各位看官的Python功底不深,又先写了几篇文章。以下传送门:

阅读全文 »

题目虽然是颜色选择器使用,但是本篇小黄文会涉及到玉女心经…
咳咳, 本篇技术文章涉及到一些重要的姿势,某些看官一直要求我讲一讲有关js方面的姿势。
那么本篇大概会出现自定义Widget、Tree视图的渲染等姿势。
某些看官(尤其’小萝卜头’…)就不要那么吝啬了,1分钱都不够手机流量费。

那下面就正式开始

阅读全文 »

Odoo 的弹窗使用的是Dialog,无论是异常还是警告还是向导,都是一个Dialog对话框。
有时候,我们只想给用户一个提示。除了在点击按钮在xml中定义一个confirm提示信息外, 在代码中基本就是使用向导的方式来解决了,这无疑是个麻烦事。
上一篇中,我们介绍了如何使用延时提醒的方式。那本篇就扒一扒如何自定义一个Dialog。
各位看官,就请关上门,拉上窗,听我细细分说。

阅读全文 »

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

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

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

阅读全文 »

最近有些小伙伴总是问我代码这么写行不行,性能怎么样,balabala……

其实Odoo本身已经给我们提供了分析工具Profile
下面就介绍一下profile

profile的使用

profile的定义位于 odoo.tools目录下的 profile.py 和 misc.py文件。小伙伴请自行阅读源码。

姿势一: Graph a method

阅读全文 »

最近有些小伙伴对Odoo的api中的装饰器总是有些误区,或者使用方式不对。导致结果和预想的不一致。

那么可以肯定的说,那是你使用姿势的问题。下面且听我讲解姿势,如:老汉推车…… 咳咳,跑偏了。

api装饰器种类

姿势一: @api.model

装饰一个记录样式的方法,其中self是一个记录集,但其内容无关紧要,仅模型相关。
即在记录行方式下装饰一个内容不明确、但模型明确的方法。
举个姿势:

阅读全文 »

gitstats 是一款git历史统计工具,可以生成定量的统计数据,并以html图表的形式展示。统计文件包括文件数量、代码量、提交量、作者信息、每天活跃度、每周活跃度、每月活跃度以及提交数排名等等,信息比较丰富。
##安装
gitstats 依赖 Git 、Python2 以及Gnuplot。
以下是最新的依赖版本。

阅读全文 »