Trac 工单系统
作为 Trac 的核心项目管理元素,工单可用于项目任务、功能请求、错误报告以及软件支持问题等。
与 TracWiki 类似,此子系统旨在让用户尽可能简单地进行贡献和参与。工单可以编辑、注释、分配、设置优先级和讨论。
出于明显的垃圾邮件防范原因,默认安装不允许未经身份验证的用户(“匿名”用户)更改任何内容,甚至无法对问题进行评论。请查阅当地的贡献政策,或联系您当地的 Trac 管理员。
工单字段
工单包含以下信息
- 摘要 — 不带 Wiki格式 的纯文本。
- 描述 — 工单主体。支持 Wiki格式。
- 报告人 — 工单的创建者。
- 类型 — 默认类型为
defect
(缺陷)、enhancement
(增强)和task
(任务)。 - 组件 — 此工单相关的项目模块或子系统。
- 版本 — 此工单所属的项目版本。
- 关键词 — 用于搜索和报告生成。
- 优先级 — 默认优先级为
trivial
(微不足道)、minor
(次要)、major
(主要)、critical
(严重)和blocker
(阻塞)。定义多个优先级时为下拉列表。 - 严重程度 — 类似于优先级,但对于某些项目而言,此区别可能很有用。默认情况下未定义严重程度,因此该字段将从工单表单中隐藏。
- 里程碑 — 工单将在此里程碑中解决。一个下拉列表。
- 分配给/所有者 — 负责处理该问题的主要人员。
- 抄送 — 当工单发生更改时需要通知的其他用户或电子邮件地址的逗号分隔列表。
- 解决方案 — 工单关闭的原因。默认值为
fixed
(已修复)、invalid
(无效)、wontfix
(不修复)、duplicate
(重复)和worksforme
(对我有效)。 - 状态 — 状态在工单工作流中定义。对于默认工作流,状态为
new
(新建)、assigned
(已分配)、accepted
(已接受)、closed
(已关闭)和reopened
(已重新打开)。
备注
- 类型、组件、里程碑、版本、优先级、严重程度字段和解决方案可以使用 trac-admin 或 WebAdmin 进行管理。
更改和评论工单
在适当的权限下,可以对工单进行评论并更改工单属性。查看工单时,更改历史记录将显示在工单属性框下方。
默认情况下,已认证用户可以编辑自己的工单评论。拥有 TICKET_EDIT_COMMENT
权限的用户可以编辑任何评论。
评论编辑旨在对评论进行小幅更正,例如修复格式或拼写错误。对于重大编辑,您应该添加新的评论。编辑评论不会在时间线上生成新条目,而输入新评论或其他更改则会生成。
所有编辑(字段更改、新评论、评论编辑)都会更新工单的“上次更改”时间。
注意
- 有关如何配置工单更改电子邮件通知的信息,请参阅Trac通知。
- 有关状态转换(工单生命周期)和工作流定制的信息,请参阅Trac工作流。
隐藏字段
许多默认工单字段可以通过 WebAdmin 或使用 trac-admin 删除所有可能的值来从工单网页界面中隐藏。这仅适用于下拉列表:类型、优先级、严重程度、组件、版本和里程碑。
添加自定义字段
Trac 允许您添加自定义工单字段。有关更多信息,请参阅Trac工单自定义字段。
下拉字段的默认值
各种下拉字段的默认选项可以在 trac.ini 中设置。请参阅 [ticket] 部分中以 default_
为前缀的值。多个字段的默认值也可以通过 WebAdmin 进行设置。
如果省略其中任何选项,默认值将是列表中的第一个值,或者在允许时为空值。allowed_empty_fields 选项确定哪些字段可以为空值。
将“分配给”设置为下拉列表
如果可能的工单所有者列表是有限的,您可以将分配给工单字段从文本输入更改为下拉列表。这可以通过将 trac.ini 中 [ticket]
部分的 restrict_owner
选项设置为 true
来完成。在这种情况下,Trac 将用所有拥有已认证会话并拥有 TICKET_MODIFY
权限的用户填充列表。
用户首次通过项目认证时,将创建一个已认证会话。您可以使用 trac-admin 的 session add
命令手动添加已认证会话。会话 ID(即用户名)上的 :1
后缀是创建已认证会话的关键。
trac-admin /path/to/projenv session add <sid>:1 [name] [email]
您可能会发现下拉列表中过度填充了不再活跃于项目中的用户。撤销认证权限不会删除用于填充下拉列表的会话数据。trac-admin 命令可用于列出和删除会话。
- 列出所有会话
trac-admin /path/to/projenv session list
- 删除会话
trac-admin /path/to/projenv session delete SID
或者,您可以直接从不希望包含在列表中的用户那里撤销 TICKET_MODIFY
权限。但是,如果您已将 TICKET_MODIFY
授予所有匿名或已认证用户,则无法这样做。
备注
- 如果您需要更大的灵活性,请使用
ConfigurableTicketWorkflow
子类并重写get_allowed_owners
方法(参见Trac 工单 12807)。
- 激活此选项可能会导致一些性能下降。有关更多信息,请参阅Trac 性能页面。
新建工单的预设值
要创建指向填充了预设值的新工单表单的链接,您需要调用 /newticket?
URL,并使用 &
分隔的 variable=value
对。可能的变量包括:
- 类型 — 类型下拉列表。
- 报告人 — 报告人的姓名或电子邮件。
- 摘要 — 工单的摘要行。
- 描述 — 工单的详细描述。
- 组件 — 组件下拉列表。
- 版本 — 版本下拉列表。
- 严重程度 — 严重程度下拉列表。
- 关键词 — 关键词或标签。
- 优先级 — 优先级下拉列表。
- 里程碑 — 里程碑下拉列表。
- 抄送 — 用于通知工单更改的电子邮件列表。
示例:[/newticket?summary=Compile%20Error&version=1.0&component=gui]
要设置工单所有者,可能还需要选择工作流操作。对于默认工作流,可以使用 action=create_and_assign
选择创建并分配操作,并通过分配 action_create_and_assign_reassign_owner
来指定所有者。或者,您可以通过使用默认属性将创建并分配设置为默认操作,从而避免选择操作。
对于其他自定义工作流操作,请通过检查操作单选按钮和所有者输入或选择元素的 name
属性来确定变量名。
删除工单
工单删除和工单更改删除功能通过可选组件启用。要启用此功能,请编辑 TracIni 的 [components] 部分。
[components] tracopt.ticket.deleter.* = enabled
删除按钮出现在工单描述和工单更改区域的回复按钮旁边。删除工单和工单更改需要 TICKET_ADMIN
权限。
工单和工单更改也可以使用 TracAdmin 的 ticket remove
和 ticket remove_comment
命令删除。
克隆工单
工单克隆功能通过可选组件启用。要启用此功能,请编辑 TracIni 的 [components] 部分。
[components] tracopt.ticket.clone.* = enabled
克隆按钮出现在工单描述和工单更改区域的回复按钮旁边。工单摘要、描述和属性将被克隆,并进行少量修改,例如将工单报告人更改为当前已认证用户。
另请参阅:Trac工单自定义字段、Trac通知、Trac报告、Trac查询、TracRepositoryAdmin#CommitTicketUpdater