我的任务页面只显示个人任务,即分配给用户制作的任务,而不是分配给用户审阅的任务,这对项目管理者很不方便。
遨奇思特网页端页面提供了 自定义页面过滤条件 的功能,以我的任务页面为例,即使是显示需要用户审阅的任务也没有问题。
本节主要介绍复制当前页面、自定义页面过滤条件的方法。
进入我的任务页面,点击工具栏右侧 My Tasks Page 按钮,展开 页面设置菜单 如下图:
点击 页面另存为 菜单项,在 另存为新页面 面板输入新页面的名称: 审阅任务,并点击 确认 按钮保存。
点击 审阅任务 菜单项跳转该页面,打开 页面设置菜单,点击菜单中的 页面过滤设置 菜单项,打开 页面过滤条件 面板,如下图所示:
可以看到当前页面的过滤条件是 【制作人员】【包含】【当前用户 (Current User)】,这正是 我的任务 页面的关键。
通过该面板修改过滤条件,用户可以决定当前页面可以显示哪些数据,不可以显示哪些数据。
遨奇思特网页端鼓励用户自定义页面。
注意:不要轻易更改默认的 初始页面,虽然网页端提供了 重置页面 的功能。
| 属性 | 说明 |
| 关系 | 表示条件之间的关系,包含 并且、或者 两种。
通过关系可以构建层级更深、表意更复杂的过滤条件。 |
| 条件 | 需要指定 字段、运算符、数值,语义才完整,否则条件无效。
比如字段为 名称,运算符为 是,数值为 s001,表示查找名称是 s001 的实体。 比如字段为 名称,运算符为 是,数值为空,表示查找名称为空的实体。 |
现在点击 条件控件 右侧的红色 ✖ 按钮,删除原条件。
然后点击 关系控件 右侧的蓝色 + 按钮,点击下拉菜单中的 添加条件 菜单项。
下拉菜单如下图所示:
添加新条件后,点击新条件中的 字段 下拉列表框,选择 审阅人员,如下图所示:
点击 运算符 下拉列表框,选择 包含(审核人员字段是实体列表类型,允许包含多个实体),如下图所示:
点击 数值 下拉列表框,随意输入两个字符,点击下拉菜单的 环境上下文 > User 菜单项,即可设置数值为当前用户。
下拉菜单如下图所示:
此时点击 页面过滤条件 面板的右下角 应用 按钮提交表单,保存页面后再刷新页面就可以查看需要审阅的任务了。
以下是运算符的说明:
| 名称 | 代码 | 数据类型 | 说明 |
| 是 | is | 全部 |
与数值完全相同。 字符串 ‘lay’ 只能搜索到 ‘lay’。 |
| 不是 | is_not | 全部 | is 的查询结果的补集。 |
| 属于 | in | 全部 |
与数值完全相同。 字符串 ‘lay’ 只能搜索到 ‘lay’。 |
| 不属于 | not_in | 全部 | in 的查询结果的补集。 |
| 包含 | contains | 字符串或实体 |
字符串 ‘lay’ 可以搜索到 ‘layout’ 和 ‘Layout’; 实体 {id: 1, type: ‘Task’} 可以搜索到 id 为 1 的任务。 |
| 不包含 | excludes | 字符串或实体 | contains 的查询结果的补集。 |
| 小于 | less_than | 数字、日期、时间 | 小于数值。 |
| 大于 | greater_than | 数字、日期、时间 | 大于数值。 |
| 起始于 | starts_with | 字符串 | 以字符串开头。 |
| 结束于 | ends_with | 字符串 | 以字符串结束。 |
主程序在处理运算符时会自动适配数据类型,所以无论哪种运算符都是通用的,并不存在 less_than 运算符必须用于数值型字段的约束,但用户也必须明白 [entity, less_than, {‘id’:1,’type’:’Shot’}] 这样的过滤条件其实是无效的。
所以我们推荐用户在匹配字符串时优先使用 contains、excludes、in、not_in、starts_with、ends_with,在对比数值、日期、时间时使用 less_than、greater_than,在检索实体或实体列表类型字段时使用 contains、excludes、in、not_in。
这里还有一些高阶特性需要注意:
1. 当使用 contains、excludes 运算符且数值为字符串时,会进行模糊匹配,而使用 in、not_in 则不会。
2. 主程序会把数值处理成数值列表的形式,你在使用 Python API 时可以在数值位置传入数值列表。
3. 当使用 in、not_in、less_than、greater_than、starts_with、ends_with 运算符时,只要包含数值列表中任意一个元素就会判定为真。
4. 当使用 is、is_not、contains、excludes 运算符时,需要与数值列表中的所有元素匹配才会判定为真。
运算符为 is 时会按照左值等于右值的方式来查询,但实体列表类型字段是一个特例。举例说明:
假设现在有一个任务 A 的制作人员是艺术家 A,还有一个任务 B 的制作人员是艺术家 A 和艺术家 B。
当查询条件是 [制作人员, 是, [艺术家 A]] 时,查询结果包含任务 A 和任务 B;当查询条件是 [制作人员, 是, [艺术家 A, 艺术家 B]] 时,查询结果只包含任务 B。
运算符为 is_not 时,实体列表类型字段的查询结果是 is 的补集。
过滤条件的数值留空即为空值,当数值为空值时表示查询字段值为空的数据,系统支持查询空值。用户可以构造一个 [制作人员, 是, 空] 即 [task_assignees, is, null] 的条件,查询尚未分配的任务。也可以构造一个 [制作人员, 不是, 空] 即 [task_assignees, is_not, null] 的条件,查询已分配的任务。