博客

共 73 篇文章

Tony Gu· 2018-11-02 ·Odoo

你所了解的Odoo都是错误的!1. 关于审批

关于标题

其实把Odoo换成“一切”也可以。因为正如李普曼在《Public Opinion》里所说:“多数情况下我们并不是先理解后定义,而是先定义后理解。我们往往只能看到自己所熟悉、所喜欢的景象,那些与之相抵触的事实则会视而不见,而这自然就构成了我们认知的“刻板印象”(Sterotype)。当然我们这里毕竟不是来探讨哲学,社会学命题的,而是想跟大家聊聊Odoo相关的一些“刻板印象”。

xerxes· 2018-10-08 ·Odoo

Odoo12 新增亮点功能

十月四号,Odoo公司发布了最新的Odoo12版本。首先来看看这次发布会上的亮眼功能。

Tony Gu· 2018-06-06 ·Odoo

Odoo Smart Button(动态按钮)

Odoo系统中主要包含下面三类按钮, 见下图:

Odoo Smart Button

[!NOTE] 也有人将Odoo的Smart Button直译为“智能按钮”的,感觉稍显夸张。另外,布尔按钮实际上也是一种特殊的动态按钮。

Tony Gu· 2018-05-06 ·Odoo

Odoo中布尔按钮的选项设置

Boolean Buttton
Boolean Button

上图中归档/有效转换按钮就是一个被称作布尔按钮的控件。这个控件对应一个布尔类型的字段,所以被称作布尔按钮。 我们可以用下面的语法来定义这个按钮:

Tony Gu· 2018-05-06 ·Odoo

Odoo 中的Mixin类的用法

假设有一个需求希望在订单上选择客户时显示该客户的可用信用额度。很显然我们可以继承sale.order对象,增加可用信用额度的计算字段:

class SaleOrder(models.Model):
    _inherit = 'sale.order'

     available_credit = fields.Float(string=u'可用信用额度', compute='_get_available_credit')

     @api.depends('partner_id')
     def _get_available_credit(self):
         ....

这个需求很简单。但是,如果对销售发票也有同样的需求呢?我们当然可以把上面的代码拷贝到account.invoice的继承对象中。

Tony Gu· 2018-01-31 ·Python

Python GIL和并发

什么是Python全局锁GIL

Python GIL

static PyThread_type_lock interpreter_lock = 0; /* This is the GIL */

上面这行代码位于CPython 2.7源码的ceval.c文件中。Guido van Rossum在2003年添加了这个注释:“这就是那个GIL鬼”,而这行代码则要追溯到1997年了。在Unix系统上PyThread_type_lock是标准C语言库的锁mutex_t的别名。它在Python解释器运行时初始化:

Tony Gu· 2018-01-16 ·Odoo

Odoo V11 pdf报表打印问题

我们知道Odoo是通过wkhtmltopdf 工具将HTML格式的报表转换为pdf报表。所以,如果系统中没有安装该工具,则在打印报表时会提示该工具缺失并只能显示HTML格式的报表。 安装wkhtmltopdf很简单,但是如果您用的是Debian/Ubuntu系统,请勿用下面的命令安装:

xerxes· 2018-01-01 ·Odoo

Odoo commit 每日一读/10-a9a189

今天我们来谈谈a9a189这个commit。这个提交是对product.py中的select_seller函数的改进。

为什么要提交这个commit

product的select_seller()函数中的date获取方式由于时区的 差异会存在日期的延迟。需求质量在计量单位不一致下进行转换后产生的浮点数近似值会影响判断。