0

我正在尝试在 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 它仍然可见

那么我怎样才能做到这一点并隐藏这个按钮呢?任何帮助将不胜感激

4

1 回答 1

0

有时退后一步(字面意思)会有所帮助;-)

('show_validate', '=', False),('is_has_access', '=', 'False')

你看到这两个域元组之间的区别了吗?专注于价值观,是的,一个有引号,一个没有。一种有效,一种无效。

所以也许尝试:

('show_validate', '=', False),('is_has_access', '=', False)

但是为什么 Odoo 没有抛出错误呢?这是因为字符串是一个有效的布尔值并且总是代表True.

于 2020-06-10T07:19:42.600 回答