假设有一个需求希望在订单上选择客户时显示该客户的可用信用额度。很显然我们可以继承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的继承对象中。
什么是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解释器运行时初始化:
我们知道Odoo是通过wkhtmltopdf
工具将HTML格式的报表转换为pdf报表。所以,如果系统中没有安装该工具,则在打印报表时会提示该工具缺失并只能显示HTML格式的报表。 安装wkhtmltopdf很简单,但是如果您用的是Debian/Ubuntu系统,请勿用下面的命令安装:
在上一篇的odoo commit每日一读/10-a9a189
中,我们提到了product中的select_seller()函数,这个函数使用在哪里的呢?
今天我们来谈谈a9a189这个commit。这个提交是对product.py中的select_seller函数的改进。
为什么要提交这个commit
product的select_seller()函数中的date获取方式由于时区的 差异会存在日期的延迟。需求质量在计量单位不一致下进行转换后产生的浮点数近似值会影响判断。
自Odoo 10.0的企业版第一次引入Odoo Studio这个崭新应用,就引起了广大Odoo用户和爱好者的兴趣。在最新的Odoo 11.0 企业版中该应用的功能得到了进一步的增强。 该应用能够让不具有软件开发技能的Odoo用户通过在线图形化编辑的方式来扩展现有系统应用的功能或者创建一个全新的Odoo模块。本文将基于Odoo 11.0企业版的Odoo Studio,通过构建一个简单的Odoo应用来解说其具体的操作。
Sentry是什么?
Sentry在自动化运维中十分常用。它是一个实时事件日志记录和汇集的平台。它能够对程序运行中产生的错误信息进行抓取。通过email来告知用户。
《Odoo10 Development Essentials》Chapter5(p106)中介绍了Odoo中分层关系的建立。
代码如下
上篇文章中,主要介绍了Odoo中加入Sentry来跟踪日志记录。我们在例子中用了Sentry官方
提供的免费服务。其实Sentry是一个开源框架,你可以部署自己的Sentry服务器以获得更灵
活的配置。
今天给大家读的是2017年12月1日关于计划任务 ir.cron 的一次提交。
改进原因:
起源于 763d71 (我们也有读过ODOO COMMIT 每日一读/6 - 763D71
)这次提交:如果系统中有 to x 状态(将要安装的,将要移除的,将要升级的)的模块计划任务就不执行。初看感觉没什么“毛病”,但是如果这个 to x 状态模块因为某些原因,更新/安装/卸载失败,他们就永远处在 to x 的“僵尸”状态,那么计划任务也永远停着。