Odoo Smart Button(动态按钮)
Odoo系统中主要包含下面三类按钮, 见下图:
-
普通按钮
-
布尔按钮: 参见之前的介绍
-
动态按钮
[!NOTE] 也有人将Odoo的Smart Button直译为“智能按钮”的,感觉稍显夸张。另外,布尔按钮实际上也是一种特殊的动态按钮。
共 73 篇文章 · 当前标签「Tony Gu」
Odoo系统中主要包含下面三类按钮, 见下图:
普通按钮
布尔按钮: 参见之前的介绍
动态按钮
[!NOTE] 也有人将Odoo的Smart Button直译为“智能按钮”的,感觉稍显夸张。另外,布尔按钮实际上也是一种特殊的动态按钮。
Odoo中有很多层级关系的数据,比如:产品的分类,多层级的BOM,项目中的任务及其子任务等等。在数据库中快速存储更新这些有层级关系的数据,并能实现高效的查询是一个颇具挑战的任务。
上图中归档/有效转换按钮就是一个被称作布尔按钮的控件。这个控件对应一个布尔类型的字段,所以被称作布尔按钮。 我们可以用下面的语法来定义这个按钮:
假设有一个需求希望在订单上选择客户时显示该客户的可用信用额度。很显然我们可以继承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最近的一个Issue 中有很有 趣的关于Python浮点数的讨论。
问题的起点是说使用Odoo提供的float_round函数对浮点数做舍入操作得到的结果并不 正确,比如:
PosgreSQL行级锁可以是排他的或者是共享的。特定行上的排他行级锁是在行被更新的时候自动请求的。 该锁一直保持到事务提交或者回滚。行级锁不影响对数据的查询,它们只阻塞对同一行的写入。
PostgreSQL 10.0最近发布了,Odoo对该版本的数据库是完全支持的,不过最近发现了一个 问题- issue 20269 ,这个问题跟Odoo的序列号相关 。V11分支中的提交: 56588e8 解决了该问题。
工作中需要将本地文件同步到远端服务器。远端服务器的ssh处于安全考虑禁止远程root登录, 普通用户远程登录后可以sudo操作需要root完成的任务。现在要将本地文件rsync到远 端服务器的root为所有者的目录下,怎么整?