我在Trac中为所有门票使用优先级。我们的 管理员 用户必须优先处理所有新票证。
当 普通用户 创建新故障单时,他/她已经可以确定故障单的优先级,但有时这可能非常随意。 管理员 应自行查看所有优先事项。
是否可以只选择那些没有被管理员自己优先处理的故障单?
我已经离我很近了:
-- union tickets initially prioritized by another than Admin and not changed ever since:
SELECT
milestone AS __group__,
t.id AS ticket,
summary,
reporter as prioritizer,
component, version, status, t.priority, severity, milestone,
t.type AS type,
t.time AS created,
changetime AS _changetime,
description AS _description,
reporter AS _reporter
FROM ticket t
WHERE priority <> 'average'
AND reporter not IN ('admin','other_admin')
AND status <> 'closed'
AND t.id NOT IN (
SELECT ticket FROM ticket_change WHERE field='priority'
)
UNION
-- with all changes made by others:
SELECT
milestone AS __group__,
t.id AS ticket,
summary,
c.author as prioritizer,
component, version, status, t.priority, severity, milestone,
t.type AS type,
t.time AS created,
changetime AS _changetime,
description AS _description,
reporter AS _reporter
FROM ticket_change c, ticket t
WHERE t.id=c.ticket and field='priority'
AND author not IN ('admin','other_admin')
AND status <> 'closed'
ORDER BY milestone, author, prioritizer
但这有很多门票,现在已由管理员更正。
如何只选择那些最后一次优先级(或者只有一个是<)> 不是由管理员自己制作的
我在这里提出了一个问题:
答案 0 :(得分:1)
是的,可以将其与单个Trac查询区分开来。
这是您创建此类特殊查询的方式(具有创建查询的权限)。不幸的是,使用“单个查询”页面上的GUI元素创建此类查询太特殊了。这些是步骤:
将此SQL查询放入“查询报告”编辑字段:
SELECT id,reporter FROM ticket WHERE priority&lt;&gt; 'average'和记者不IN(SELECT username FROM permission WHERE action ='TRAC_ADMIN')
或者这个用于查看非管理员用户所做的故障单更改:
SELECT票证,作者FROM ticket_change WHERE字段='priority'而作者不是IN(SELECT username FROM permission WHERE action ='TRAC_ADMIN')
保存报告,它将获得一个新的报告编号
内部SELECT从权限数据库表中获取所有管理员,外部SELECT查找由不是其中一个管理员的人创建/更改的所有票证。数据库表ticket_change还有一个“时间”列,可用于扩展SQL查询以添加“仅最近n天的更改”等条件。