星辉信息科技Odoo开发教程9-odoo创建视图02
搜索视图
我们可以为列表视图右上角的搜索框预设一些过滤项和分组选项, Odoo 把这也视为视图元素,所以可以像列表视图和表单视图一样在 Views 中添加记录来定义。想必现在大家已经非常熟悉了,在菜单中点击 Settings > Technical> User Interface > Views 或在开发者工具中对应上下文中进行编辑操作均可。我们进入任务清单列表视图,点击开发者工具中的 Edit SearchView。
当前列表清单模型还未定义过任何搜索视图,所以显示一个空表单用于进行创建,填入如下值并保存:
⚫ View Name: 选择一个有意义的描述,此处使用 To-do Items Filter
⚫ View Type: Search
⚫ Model: x_todo_item
⚫ Architecture: 添加如下 XML 代码:
<search>
<filter name="item_not_done"
string="Not Done"
domain="[('x_is_done', '=', False)]" />
</search>
此时重载任务清单,可以在搜索框下方 Filters 按钮下选择预设的 Not Done 过滤器,在搜索框中输入 Not Done 也会提示过滤条件。默认开启过滤器会较便捷,在不需要时取消过滤即可。正如默认字段值一样,还是使用 context 属性来设置默认过滤器。
在点击 To-do 菜单时,执行一个窗口操作打开列表视图,该操作可设置一个上下文值,让视图默认开启某一搜索过滤器,操作步骤如下:
⚫ 点击 To-do 菜单进入任务清单列表
⚫ 点击开发者工具图标并选择 Edit Action,这时将弹出一个窗口操作界面,在右下角有一个Filters 版块,这里有 Domain 和 Context 字段。Domain 字段可用于为所显示记录设置固定的过滤器,而且用户无法删除。这不符合我们的场景。我们只是要默认开启 item_not_done 过滤器,用户可以随时取消选择。默认打开过滤器,添加以 search_default_作为前缀的 context 键,这里使用{‘search_default_item_not_done’ :True}这时再点击 To-do 菜单,搜索框中默认就会开启 Not Done 过滤器。