0

我对 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

但这有很多票,现在管理员已经更正了。


我怎样才能只选择那些最后一个优先级(或如果唯一的一个优先级) 不是由管理员自己制定的票?

我在这里提出了一个单独的问题:

https://stackoverflow.com/questions/17647694/trac-report-that-shows-the-author-of-the-last-prioritization-change

4

1 回答 1

1

是的,可以通过单独的 Trac 查询来区分这一点。

这就是您创建此类特殊查询的方式(具有创建查询的权限)。不幸的是,使用“个人查询”页面上的 GUI 元素创建这样的查询太特殊了。这些是步骤:

  1. 从主菜单中选择“查看门票”
  2. 单击“创建新报告”按钮,您将进入编辑页面
  3. 设置一个标题,如“所有票已修改(但不是由管理员)”
  4. 将此 SQL 查询放在“查询报告”编辑字段中:

    SELECT id,reporter FROM ticket WHERE priority <> 'average' AND 记者不在(SELECT username FROM permission WHERE action='TRAC_ADMIN')

    或这个查看非管理员用户所做的工单更改:

    SELECT ticket,author FROM ticket_change WHERE field='priority' and author not IN (SELECT username FROM permission WHERE action='TRAC_ADMIN')

  5. 保存报告,它会得到一个新的报告编号

  6. 在报告页面上单击该报告(通过单击主菜单项“查看工单”转到那里),然后就可以了!

内部 SELECT 从权限数据库表中获取所有管理员,外部 SELECT 查找由不是管理员之一的人创建/更改的所有票证。数据库表 ticket_change 还有一个“时间”列,您可以使用它来扩展您的 SQL 查询,以添加诸如“仅最近 n 天的更改”之类的条件或类似的内容。

于 2013-07-12T20:06:32.523 回答