![](/img/trans.png)
[英]Odoo 8 - on_record_write() not triggered for 'state' field on stock.picking
[英]How To Hide Validate Button in odoo stock.picking form based on boolean field with states
我正在尝试在 stock.picking 表单上隐藏验证按钮,我正在搜索stock.view_picking_form上的按钮并找到名称为 button_validate 的两个按钮。
<button name="button_validate" attrs="{'invisible': ['|', ('state', 'in', ('waiting','confirmed')), ('show_validate', '=', False)]}" string="Validate" type="object" class="oe_highlight" groups="stock.group_stock_user"/>
<button name="button_validate" attrs="{'invisible': ['|', ('state', 'not in', ('waiting', 'confirmed')), ('show_validate', '=', False)]}" string="Validate" type="object" groups="stock.group_stock_user" class="o_btn_validate"/>
在我的情况下,我想像这样使用 xbath 隐藏基于 Boolean 字段的第一个
<xpath expr="//button[@name='button_validate']" position="attributes">
<attribute name="attrs">{'invisible': ['|','|', ('state', 'in', ('waiting','confirmed')), ('show_validate', '=', False),('is_has_access', '=', 'False')]}</attribute>
</xpath>
保存并升级模块后,我发现 attrs 已更新按钮信息,但即使 Field = False 它仍然可见
那么我怎样才能做到这一点并隐藏这个按钮呢? 任何帮助将不胜感激
有时退后一步(字面意思)会有所帮助;-)
('show_validate', '=', False),('is_has_access', '=', 'False')
你看到这两个域元组之间的区别了吗? 专注于价值观,是的,一个有引号,一个没有。 一种有效,一种无效。
所以也许尝试:
('show_validate', '=', False),('is_has_access', '=', False)
但是为什么 Odoo 没有抛出错误呢? 这是因为字符串是有效的 boolean 值并且始终表示True
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.