报告未由特定用户确定优先级的所有trac票证

时间:2013-07-12 06:46:59

标签: sql report trac

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

1 个答案:

答案 0 :(得分:1)

是的,可以将其与单个Trac查询区分开来。

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

  1. 从主菜单中选择“查看门票”
  2. 点击“创建新报告”按钮,您将进入编辑页面,然后
  3. 设置标题为“所有故障单已修改(但不是由管理员)”
  4. 将此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')

  5. 保存报告,它将获得一个新的报告编号

  6. 点击报告页面上的那个报告(点击主菜单项“查看门票”,然后去那里!)
  7. 内部SELECT从权限数据库表中获取所有管理员,外部SELECT查找由不是其中一个管理员的人创建/更改的所有票证。数据库表ticket_change还有一个“时间”列,可用于扩展SQL查询以添加“仅最近n天的更改”等条件。