【问题标题】:Report of all trac tickets that are not prioritized by a certain user报告未按特定用户优先级的所有 trac 票证
【发布时间】:2013-07-15 14:46:25
【问题描述】:

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

【问题讨论】:

    标签: sql report trac


    【解决方案1】:

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

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

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

      SELECT id,reporter FROM ticket WHERE priority 'average' AND report not IN (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 天的更改”之类的条件。

    【讨论】:

    • 这可行,但前提是有人更改了优先级。我搜索具有除“平均”以外的初始优先级设置且不是由管理员设置的票证
    • 你是对的,rubo77。我已经对其进行了编辑并添加了创建查​​询。查看数据库(使用例如 SQLite 数据库浏览器)以查看所有新票证都记录在表“票证”中,并且您必须检查您的条件列“优先级”和“报告者”。
    • 您可以使用 UNION 创建一份报告,如下所示:SELECT id,summary,reporter as prioritizer FROM ticket WHERE priority &lt;&gt; 'average' AND reporter not IN (SELECT username FROM permission WHERE action='TRAC_ADMIN') UNION SELECT ticket,summary,author as prioritizer FROM ticket_change WHERE field='priority' and author not IN (SELECT username FROM permission WHERE action='TRAC_ADMIN')
    猜你喜欢
    • 2023-03-09
    • 2011-05-08
    • 1970-01-01
    • 1970-01-01
    • 2013-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多