Odoo 16中如何根据生产订单状态动态自定义状态栏可见项?
解决方案
要实现根据生产订单状态动态切换状态栏可见项,你可以用Odoo视图的attrs属性来动态绑定statusbar_visible值,替换原来的固定设置。具体代码如下:
<xpath expr="//header//field[@name='state']" position="attributes"> <attribute name="attrs"> { 'statusbar_visible': [ ('state', '=', 'approved'), 'draft,confirmed,progress,done', 'draft,to_approve,approved,rejected' ] } </attribute> </xpath>
代码说明
attrs是Odoo里用来动态控制字段属性的关键配置,它接受一个字典参数- 这里给
statusbar_visible加了条件逻辑:- 当订单状态等于
approved时,状态栏可见项切换为draft,confirmed,progress,done - 其他状态(包括新建记录的
draft状态),就用默认的draft,to_approve,approved,rejected
- 当订单状态等于
逻辑验证
- 新建记录时状态为
draft,触发默认规则,显示draft,to_approve,approved,rejected - 当记录状态变为
approved后,状态栏自动切换为draft,confirmed,progress,done
内容的提问来源于stack exchange,提问作者Cris Tuan
相关产品推荐
相关产品推荐

