我的任务页面只显示个人任务,即分配给用户制作的任务,而不是分配给用户审阅的任务,这对项目管理者很不方便。

遨奇思特网页端页面提供了 自定义页面过滤条件 的功能,以我的任务页面为例,即使是显示需要用户审阅的任务也没有问题。

本节主要介绍复制当前页面、自定义页面过滤条件的方法。

进入我的任务页面,点击工具栏右侧 My Tasks Page 按钮,展开 页面设置菜单 如下图:

点击 页面另存为 菜单项,在 另存为新页面 面板输入新页面的名称: 审阅任务,并点击 确认 按钮保存。

再次打开 页面设置菜单,鼠标移动到 选择一个页面 菜单项,就能看到刚才新建的 审阅任务 页面了。

点击 审阅任务 菜单项跳转该页面,打开 页面设置菜单,点击菜单中的 页面过滤设置 菜单项,打开 页面过滤条件 面板,如下图所示:

Filter condition panel

可以看到当前页面的过滤条件是 【制作人员】【包含】【当前用户 (Current User)】,这正是 我的任务 页面的关键。

通过该面板修改过滤条件,用户可以决定当前页面可以显示哪些数据,不可以显示哪些数据。

遨奇思特网页端鼓励用户自定义页面。

注意:不要轻易更改默认的 初始页面,虽然网页端提供了 重置页面 的功能。

页面过滤设置需要注意 关系条件 的含义:
属性 说明
关系 表示条件之间的关系,包含 并且或者 两种。

通过关系可以构建层级更深、表意更复杂的过滤条件。

条件 需要指定 字段运算符数值,语义才完整,否则条件无效。

比如字段为 名称,运算符为 ,数值为 s001,表示查找名称是 s001 的实体。

比如字段为 名称,运算符为 ,数值为空,表示查找名称为空的实体。

现在点击 条件控件 右侧的红色  按钮,删除原条件。

然后点击 关系控件 右侧的蓝色 + 按钮,点击下拉菜单中的 添加条件 菜单项。

下拉菜单如下图所示:

Filter condition panel add menu

添加新条件后,点击新条件中的 字段 下拉列表框,选择 审阅人员,如下图所示:

点击 运算符 下拉列表框,选择 包含(审核人员字段是实体列表类型,允许包含多个实体),如下图所示:

Filter condition panel select relation contains

点击 数值 下拉列表框,随意输入两个字符,点击下拉菜单的 环境上下文 > User 菜单项,即可设置数值为当前用户。

下拉菜单如下图所示:

Filter condition panel type character select current 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] 的条件,查询已分配的任务。