如何在 Odoo 14 中隐藏过滤器
Posted
技术标签:
【中文标题】如何在 Odoo 14 中隐藏过滤器【英文标题】:How to Hide Filters in Odoo 14 【发布时间】:2021-11-02 11:14:36 【问题描述】:如何在 Odoo 中隐藏过滤器,我知道我可以使用记录规则,但在我的情况下我不能。 这不起作用。
请注意:这不是我要隐藏的过滤器。
<filter name="today" **invisible="1"** string="Today's Investigation" domain="[('date','>=', datetime.datetime.combine(context_today(), datetime.time(0,0,0))), ('date','<=', datetime.datetime.combine(context_today(), datetime.time(23,59,59)))]"/>
【问题讨论】:
根据您在下面的评论“我想要的是制作自己的过滤器然后将其隐藏以便用户无法删除它”您的问题写得非常糟糕。 【参考方案1】:据我所知,记录规则是最好的解决方案,过滤器上的记录规则示例是
<field name="name">ir.filters.own.rule.delete</field>
<field name="model_id" ref="model_ir_filters"/>
<field name="domain_force">[('user_id', '=', user.id)]</field>
<field name="groups" eval="[(4, ref('base.group_user'))]"/>
<field name="perm_read" eval="False"/>
<field name="perm_write" eval="False"/>
<field name="perm_create" eval="False"/>
</record>
【讨论】:
我确实先尝试了所有这些但没有帮助,这就是为什么我决定在 odoo 中隐藏过滤器 它确实适用于自己的规则,所以你可能在编写记录规则时遇到问题【参考方案2】:检查解决方案How to make field readonly based on group and status? 将类似的更改应用于您的搜索视图。我相信您只需要向特定组显示过滤器。
【讨论】:
【参考方案3】:我不明白隐藏过滤器的实用性。但是如果你想删除它,你可以继承xml搜索视图和过滤器和xpath +替换过滤器:
<xpath expr="//filter[@name='today']" position="replace">
</xpath>
这段代码中最重要的是position="replace"
。
【讨论】:
谢谢@jo541,但这不是我想要的。我想要的是制作自己的过滤器,然后将其隐藏,以便用户无法删除它 我想是用默认过滤器打开一个视图? 但不能被用户删除,我该怎么做? 您必须更改您的 ir.act.window 并添加一个域。 odoo.com/documentation/14.0/fr/developer/reference/addons/…以上是关于如何在 Odoo 14 中隐藏过滤器的主要内容,如果未能解决你的问题,请参考以下文章