Odoo 11 中的自定义过滤器

Custom filter in Odoo 11

默认情况下,Odoo 附带了一堆可以配置为 'contains'、'is set'、'is not set' 的自定义过滤器。我想知道如何像开始时那样制作自定义过滤器。我能够阅读文档如何添加更多要搜索的字段,但不能阅读如何添加更多要搜索的操作。

我该怎么做才能使这种基本的搜索形式成为可能?大多数 sql 后端都有一个基本的内置 LIKE 匹配,我如何在 Odoo 11 中将其公开给最终用户。

您可以像下面这样使用带有通配符的过滤器来开始/结束:

  • 开头为:

    ['field', '=like', 'letter%']
    
  • 结尾为:

    ['field', '=like', '%letter']
    

在 Odoo 11 的 Github 存储库中的 addons 下,您可以找到 web 模块,其中包含基本的 web 框架和相关文件。在web模块下,有一个名为search_filters.js

的文件

此文件包含用于扩展搜索菜单(显示自定义过滤器的菜单)的小部件。这个小部件的工作方式是每个基本基元(文本、数字、id)都注册了预定义的操作。

对于文本搜索,它有标准的contains、equals、is set、is not set命令。所有这些都使用标准运算符(ilike, !=, =) 等)构建了一个普通域过滤器。因此,为了实现开始和结束是添加新条目,并修改 javascript 以生成正确的域过滤器,例如 =ilike=query%=ilike=%query