xml - 禁用 Odoo 中的更新过滤器

标签 xml view filtering odoo searchview

我创建了一个搜索 View 并在其中定义了我的过滤器:

<record id="dept_search_view" model="ir.ui.view">
<field name="name">employee.search.view</field>
 <field name="model">employee</field>
<field name="arch" type="xml">
    <search string="dept_search">
        <filter string="Department" name="dept_search" domain="[('e_dept', 'in', ['HR','Audit'])]">

        </filter>

    </search>
</field>

我将过滤器添加到了我想要默认应用过滤器的 View 中。

<record model="ir.ui.view" id="view_employee_tree">
    <field name="name">employee.tree</field>
    <field name="model">employee</field>
   <field name="context">{"search_default_dept_search":1}</field>
    <field name="priority" eval="8" />
    <field name="arch" type="xml">
        <tree string="Employee">
            <field name="e_dept"/>
            <field name="employee_id"/>
            <field name="employee_name"/>
        </tree>
    </field>
</record>

但是,用户仍然可以删除搜索栏中的默认过滤器。如何阻止用户删除过滤器

最佳答案

默认情况下,odoo 允许您删除搜索 View 中的过滤器。

根据您的说法,我认为您不需要用户查看其他记录。 您可以通过两种技术来做到这一点,一种是简单的,一种是使用操作定义

  <record id="your_action_id" model="ir.actions.act_window">
       ....
       ....
       ....
       ....
       <!-- in your action definition just add a domain like this -->
       <field name="domain">[('e_dept', 'in', ['HR','Audit'])]</field>
  </record>

在这种技术中,odoo 为所有用户提供了当他们点击执行菜单时的功能 此操作他们将仅看到与域匹配的记录。如果这就是你 想用它。

有时您想保留相同的菜单,但对于您希望他们看到的用户组 仅匹配域的记录,但适用于其他用户组(例如管理员) 您希望他们看到所有记录。您需要使用ir.rule来执行此操作。

假设您希望他们看到的用户组仅显示与您的记录匹配的记录 域名是:'hr_audi_group'

 <record model="ir.rule" id="hr_audi_group_rule">
        <field name="name">Show only 'HR' and 'Audit' record for hr_audi_group</field>
        <field name="model_id" ref="model_employee"/>
        <field name="domain_force">[('e_dept', 'in', ['HR','Audit'])]</field>
         <field name="perm_read" eval="True"/>
        <field name="perm_create" eval="True"/>
        <field name="perm_write" eval="True"/>
        <field name="perm_unlink" eval="True"/>
        <-- this rule will be applied only for users that belong to this group -->
        <field name="groups" eval="[(4,ref('hr_audi_group')]"/>
    </record>

因此,在同一菜单中,对于某些用户,它将显示所有记录,但对于属于该记录的用户 对于 hr_audi_group,他们只会看到部分记录。

希望对您有帮助。

关于xml - 禁用 Odoo 中的更新过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49684758/

相关文章:

ios - 尝试在 View 不在窗口层次结构中的 UIViewController 上呈现 UIViewController

java - 更新始终位于顶部的 Android View

javascript - 使用在每个 div 中的元素中找到的文本按搜索进行过滤

python - 单列 QTreeview 搜索过滤器

java - XML 解析到 MySQL 数据库

xml - Xamarin 工作室 : Rebuild project error with error : The "DebugType" parameter is not supported by the "XamlCTask" task

php - XMLHttpRequest 将 XML 发送到 PHP 服务器

objective-c - 任何用于 Objective-C 的 XML 绑定(bind)框架?

java - 单击按钮后在弹出窗口中显示图像 - Android/Java

MySQL 一个表一个表地过滤