OE 5.0.9 attrs 不支持多条件 domain.
-
5.0.9 版本, 问题:
xml view:<br /> <field name="obj1_id" attrs="{'readonly':['|', ('obj2_id', '!=', False), ('obj3_id', '!=', False)]}" /><br /> <field name="obj2_id" attrs="{'readonly':['|', ('obj1_id', '!=', False), ('obj3_id', '!=', False)]}" /><br /> <field name="obj3_id" attrs="{'readonly':['|', ('obj1_id', '!=', False), ('obj2_id', '!=', False)]}" /><br />
结果
当 obj1_id 有值时... obj2_id obj3_id 只读.. 正确...
当 obj2_id 有值时... obj1_id 只读.. obj3_id 可写
当 obj3_id 有值时 obj1_id obj2_id 的只读设置均无效了.
由 沈阳-志(865781380) 提示 BUG 修正链接: https://bugs.launchpad.net/openobject-client-web/+bug/491817
原来是 web client 以及 gtk client 没有支持到 多条件 domain 按 #18 的bug patch https://launchpadlibrarian.net/50135469/or_in_attrs.patch 修正后 5.0.9 web client 正常.
但在 6.0.2 (All In One)版本 web client 里, 仍然存在这样的问题. 查看对应的 js 文件, 发现 5.0.9 的JS修正部分已OK... 但 实际结果 只有多条件语句中的 第一条条件生效.
不知是否有人同我一样问题. 或者 有去官方 报告.或者已经解决方案. 谢谢.
另: domain 的条件表达式 应该写为 ('obj2_id', '!=', '') -
经测试我在5.0.16多条件也是不成功 ???,不知道是不是因为我的domain是个many2one的缘故,一个条件是成功的,但是多个以或相连就不生效了,就算是用了下面那个BUG修正也是无法运行。(web Client,GTK Client也不行)
attrs="{'readonly':['|',('property_account_position','=','1),('property_account_position','=',3)]}"