如何在 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','&gt;=', datetime.datetime.combine(context_today(), datetime.time(0,0,0))), ('date','&lt;=', 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 中隐藏过滤器的主要内容,如果未能解决你的问题,请参考以下文章

如何在odoo 14的打印菜单中隐藏报告?

odoo 14 如何获取选定的记录

在视图中添加默认过滤器 - Odoo

如何在 Odoo 8 的 fom 视图中对树/列表视图进行分组?

如何在odoo 使用one2many

如何根据内容中的过滤器号隐藏表?