如何基于带有状态的布尔字段在 odoo 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 隐藏基于布尔字段的第一个
<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 没有抛出错误?那是因为字符串是一个有效的布尔值并且总是表示 True
.
我正在尝试隐藏 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 隐藏基于布尔字段的第一个
<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 没有抛出错误?那是因为字符串是一个有效的布尔值并且总是表示 True
.