Trac 工单查询
除了报告之外,Trac 还提供自定义工单查询,用于显示符合指定条件的工单。
要配置和执行自定义查询,请从导航栏导航到查看工单模块,然后选择新建自定义查询链接。
筛选器
当您首次进入查询页面时,默认筛选器将显示与您相关的工单
- 如果已登录,则显示所有分配给您的开放工单。
- 如果未登录,但您已在偏好设置中指定了姓名或电子邮件地址,则显示您的姓名或电子邮件在抄送列表中的所有开放工单。
- 如果未登录且未在偏好设置中定义姓名/电子邮件,则显示所有开放问题。
使用筛选框底角的下拉列表添加新筛选器;左侧是“与”条件,右侧是“或”条件。通过单击左侧带有减号标签的按钮可移除筛选器。
编辑筛选器后,单击更新按钮刷新结果。
包含文本框或选项下拉菜单的筛选器可以多次添加,以对条件执行或操作。通过单击“与”下拉菜单并选择您已选择的项来添加额外的“或”操作。例如,要选择“里程碑是 X 或里程碑是 Y”,请选择“里程碑”,选择“X”,然后单击“与”下拉菜单,再次选择“里程碑”并选择“Y”。
对于关键字和抄送等文本字段,可以使用-
运算符来否定匹配,并使用双引号(自 1.2.1 版本起)来匹配短语。例如,对于word1 word2 -word3 "word4 word5"
的包含匹配,将匹配包含word1
和word2
但不包含word3
以及包含word4 word5
的工单。
您可以使用筛选框正下方的控件根据字段对结果进行分组,或显示每个工单的完整描述。
可使用键盘快捷键操作复选框筛选器
- 单击筛选行标签可切换所有复选框。
- 在单击筛选行标签的同时按下修改键,可反转所有复选框的状态。
- 在单击复选框的同时按下修改键,将选中该复选框并取消选中筛选器中的所有其他复选框。自 1.2.1 版本起,这也适用于列复选框。
修改键取决于平台和浏览器。在 Mac 上,修改键是 Option/Alt 或 Command。在 Linux 上,修改键是 Ctrl + Alt。Windows 上的 Opera 似乎使用 Ctrl + Alt,而 Alt 对于其他 Windows 浏览器有效。
浏览工单
单击查询结果中的一个将带您进入该工单。您可以通过单击主菜单栏下方的下一工单或上一工单链接来浏览结果,或单击返回查询链接返回查询页面。
您可以安全地编辑任何工单,并在保存结果后继续使用下一/上一/返回查询链接浏览结果。当您返回查询时,任何已编辑的工单将以斜体文本显示。如果其中一个工单经过编辑,导致它不再符合查询条件,则文本也将显示为灰色。如果已创建符合查询条件的新工单,它将以粗体显示。
再次单击更新按钮可以刷新查询结果并清除这些状态指示器。
保存查询
Trac 允许您将查询保存为命名查询,可从报告模块访问。要保存查询,请确保您已更新视图,然后单击结果下方显示的保存查询按钮。您还可以将查询引用保存在 Wiki 内容中,如下所述。
注意:轻松构建如下查询的一种方法是使用自定义查询模块创建和测试查询。单击保存查询将为您显示查询字符串,您只需删除多余的换行符即可。
注意:您必须具有 REPORT_CREATE 权限才能将查询保存到默认报告列表中。只有当您以被授予此权限的用户身份登录时,保存查询按钮才会显示。如果您的账户没有创建报告的权限,您仍然可以使用以下方法保存查询。
指向查询的 TracLinks
您可以使用简单的查询语言从任何 Wiki 页面创建指向查询的链接,以指定条件。
[query:status=new|assigned|reopened&version=1.0 Active tickets against 1.0]
其显示如下:
另外,您可以从浏览器 URL 框复制查询字符串并将其粘贴到 Wiki 链接中,包括开头的?
字符
[query:?status=new&status=assigned&status=reopened&group=owner Assigned tickets by owner]
其显示如下:
查询语言
query:
TracLinks 和 [[TicketQuery]] 宏都使用一个迷你“查询语言”来指定查询筛选器。筛选器由与号 (&
) 分隔。每个筛选器由工单字段名称、运算符和一个或多个值组成。多个值使用竖线 (|
) 分隔,这意味着筛选器匹配其中任何一个值。要在值中包含字面意义的&
或|
,请使用反斜杠 (\
) 转义该字符。
可用的运算符有
= | 字段内容与其中一个值完全匹配 |
~= | 字段内容包含一个或多个值 |
^= | 字段内容以其中一个值开头 |
$= | 字段内容以其中一个值结尾 |
所有这些运算符也可以被否定
!= | 字段内容不匹配任何值 |
!~= | 字段内容不包含任何值 |
!^= | 字段内容不以任何值开头 |
!$= | 字段内容不以任何值结尾 |
对于关键字和抄送等文本字段,可以使用包含 (~=
) 运算符构建结合匹配和否定匹配的筛选器。-
运算符用于否定匹配,双引号(自 1.2.1 版本起)用于短语中以空格分隔的单词。例如,keywords~=word1 word2 -word3 "word4 word5"
匹配包含word1
和word2
,不包含word3
以及包含word4 word5
的工单。
status=closed,keywords~=firefox | 查询包含关键字firefox 的已关闭工单 |
status=closed,keywords~=opera | 查询包含关键字opera 的已关闭工单 |
status=closed,keywords~=firefox opera | 查询包含关键字firefox 和opera 的已关闭工单 |
status=closed,keywords~=firefox|opera | 查询包含关键字firefox 或opera 的已关闭工单 |
status=closed,keywords~=firefox,or,keywords~=opera | 查询包含关键字firefox 的已关闭工单,或包含关键字opera 的(已关闭或未关闭)工单 |
status=closed,keywords~=firefox -opera | 查询包含关键字firefox 但不包含opera 的已关闭工单 |
status=closed,keywords~=opera -firefox | 查询包含关键字opera 但不包含firefox 的已关闭工单 |
日期字段created
和modified
以及类型为time
的自定义字段可以使用=
运算符并指定一个包含由两个点 (..
) 分隔的两个日期的值来约束。日期范围的两端都可以留空,这意味着范围的相应一端是开放的。日期解析器支持一些自然的日期规范,如“3 weeks ago”、“last month”和“now”,以及 Bugzilla 风格的日期规范,如“1d”、“2w”、“3m”或“4y”,分别表示 1 天、2 周、3 个月和 4 年。日期规范中的空格可以省略,以避免引用查询字符串。
created=2007-01-01..2008-01-01 | 查询在 2007 年创建的工单 |
created=lastmonth..thismonth | 查询在上个月创建的工单 |
modified=1weekago.. | 查询过去一周内已修改的工单 |
modified=..30daysago | 查询过去 30 天内处于非活跃状态的工单 |
请注意,modified
是上次修改时间,因此带日期范围的modified
显示的是在该日期范围内上次修改的工单。如果工单在该日期范围内被修改,但在结束日期之后再次被修改,则不会包含在结果中。