Menu

TicketQuery

Andreas Buchinger

TicketQuery Wiki Macro

The TicketQuery macro lets you display ticket information anywhere that
accepts [WikiFormatting]. The query language
used by the [[TicketQuery]] macro is described in the
TracQuery page.

Usage

[[TicketQuery]]

Wiki macro listing tickets that match certain criteria.

This macro accepts a comma-separated list of keyed parameters, in the form
"key=value".

If the key is the name of a field, the value must use the syntax of a filter
specifier as defined in
[TracQuery#QueryLanguage]. Note that
this is not the same as the simplified URL syntax used for query: links
starting with a ? character. Commas (,) can be included in field values by
escaping them with a backslash (\).

Groups of field constraints to be OR-ed together can be separated by a literal
or argument.

In addition to filters, several other named parameters can be used to control
how the results are presented. All of them are optional.

The format parameter determines how the list of tickets is presented:

  • list -- the default presentation is to list the ticket ID next to the summary, with each ticket on a separate line.
  • compact -- the tickets are presented as a comma-separated list of ticket IDs.
  • count -- only the count of matching tickets is displayed
  • rawcount -- only the count of matching tickets is displayed, not even with a link to the corresponding query ( since 1.1.1 )
  • table -- a view similar to the custom query view (but without the controls)
  • progress -- a view similar to the milestone progress bars

The max parameter can be used to limit the number of tickets shown (defaults
to 0 , i.e. no maximum).

The order parameter sets the field used for ordering tickets (defaults to
id ).

The desc parameter indicates whether the order of the tickets should be
reversed (defaults to false ).

The group parameter sets the field used for grouping tickets (defaults to
not being set).

The groupdesc parameter indicates whether the natural display order of the
groups should be reversed (defaults to false ).

The verbose parameter can be set to a true value in order to get the
description for the listed tickets. For table format only. deprecated in
favor of therows parameter

The rows parameter can be used to specify which field(s) should be viewed as
a row, e.g. rows=description|summary

The col parameter can be used to specify which fields should be viewed as
columns. For table format only.

For compatibility with Trac 0.10, if there's a last positional parameter given
to the macro, it will be used to specify the format. Also, using "&" as a
field separator still works (except for order) but is deprecated.

Examples

Example Result Macro
Number of [Triage
tickets](/dataseeker/query?status=new&milestone=&order=priority):
**[4](/dataseeker/query?status=new&milestone=&max=0&order=id "4 tickets
matching status=new, milestone=, max=0, order=id")**
[[TicketQuery(status=new&milestone=,count)]]
Number of new tickets: **[4](/dataseeker/query?status=new&max=0&order=id "4
tickets matching status=new, max=0, order=id")**
[[TicketQuery(status=new,count)]]
Number of reopened tickets:
**[0](/dataseeker/query?status=reopened&max=0&order=id "0 tickets matching
status=reopened, max=0, order=id")**
[[TicketQuery(status=reopened,count)]]
Number of assigned tickets:
**[0](/dataseeker/query?status=assigned&max=0&order=id "0 tickets matching
status=assigned, max=0, order=id")**
[[TicketQuery(status=assigned,count)]]
Number of invalid tickets:
**[2](/dataseeker/query?status=closed&resolution=invalid&max=0&order=id "2
tickets matching status=closed, resolution=invalid, max=0, order=id")**
[[TicketQuery(status=closed,resolution=invalid,count)]]
Number of worksforme tickets:
**[1](/dataseeker/query?status=closed&resolution=worksforme&max=0&order=id "1
ticket matching status=closed, resolution=worksforme, max=0, order=id")**
[[TicketQuery(status=closed,resolution=worksforme,count)]]
Number of duplicate tickets:
**[0](/dataseeker/query?status=closed&resolution=duplicate&max=0&order=id "0
tickets matching status=closed, resolution=duplicate, max=0, order=id")**
[[TicketQuery(status=closed,resolution=duplicate,count)]]
Number of wontfix tickets:
**[0](/dataseeker/query?status=closed&resolution=wontfix&max=0&order=id "0
tickets matching status=closed, resolution=wontfix, max=0, order=id")**
[[TicketQuery(status=closed,resolution=wontfix,count)]]
Number of fixed tickets:
**[8](/dataseeker/query?status=closed&resolution=fixed&max=0&order=id "8
tickets matching status=closed, resolution=fixed, max=0, order=id")**
[[TicketQuery(status=closed,resolution=fixed,count)]]
Number of untriaged tickets (milestone unset):
**[4](/dataseeker/query?status=!closed&milestone=&max=0&order=id "4 tickets
matching status!=closed, milestone=, max=0, order=id")**
[[TicketQuery(status!=closed,milestone=,count)]]
Total number of tickets: **[15](/dataseeker/query?max=0&order=id "15
tickets matching max=0, order=id")** [[TicketQuery(count)]]
Number of tickets reported or owned by current user:
**[0](/dataseeker/query?reporter=%24USER&or&owner=%24USER&max=0&order=id "0
tickets matching reporter=$USER, or, owner=$USER, max=0, order=id")**
[[TicketQuery(reporter=$USER,or,owner=$USER,count)]]
Number of tickets created this month:
**[0](/dataseeker/query?time=thismonth..&max=0&order=id "0 tickets matching
created=thismonth.., max=0, order=id")**
[[TicketQuery(created=thismonth..,count)]]
Number of closed Firefox tickets:
**[0](/dataseeker/query?status=closed&keywords=~firefox&max=0&order=id "0
tickets matching status=closed, keywords~=firefox, max=0, order=id")**
[[TicketQuery(status=closed,keywords~=firefox,count)]]
Number of closed Opera tickets:
**[0](/dataseeker/query?status=closed&keywords=~opera&max=0&order=id "0
tickets matching status=closed, keywords~=opera, max=0, order=id")**
[[TicketQuery(status=closed,keywords~=opera,count)]]
Number of closed tickets affecting Firefox and Opera:
**[0](/dataseeker/query?status=closed&keywords=~firefox+opera&max=0&order=id
"0 tickets matching status=closed, keywords~=firefox opera, max=0,
order=id")** [[TicketQuery(status=closed,keywords~=firefox opera,count)]]
Number of closed tickets affecting Firefox or Opera:
**[0](/dataseeker/query?status=closed&keywords=~firefox&keywords=~opera&max=0&order=id
"0 tickets matching status=closed, keywords~=firefox opera, max=0,
order=id")** [[TicketQuery(status=closed,keywords~=firefox|opera,count)]]
Number of tickets that affect Firefox or are closed and affect Opera:
**[0](/dataseeker/query?keywords=~firefox&or&status=closed&keywords=~opera&max=0&order=id
"0 tickets matching keywords~=firefox, or, status=closed, keywords~=opera,
max=0, order=id")**
[[TicketQuery(status=closed,keywords~=opera,or,keywords~=firefox,count)]]
Number of closed Firefox tickets that don't affect Opera:
**[0](/dataseeker/query?status=closed&keywords=~firefox+-+opera&max=0&order=id
"0 tickets matching status=closed, keywords~=firefox - opera, max=0,
order=id")** `[[TicketQuery(status=closed,keywords~=firefox
-opera,count)]]`
Last 3 modified tickets: **[#14](/dataseeker/ticket/14 "Repeated search:
entry fields should respect data changes"), [#15](/dataseeker/ticket/15
"Problems with multiple open DataSeeker windows"), [#13](/dataseeker/ticket/13
"Default file filter for a drive has 2 backslashs")**
[[TicketQuery(max=3,order=modified,desc=1,compact)]]

Details of ticket #1:

| |

[[TicketQuery(id=1,col=id|owner|reporter,rows=summary,table)]]

|
Ticket |
Owner |
Reporter
---|---|---
#1 | andib | andib
Summary | Window boarder not sizeable - (test)

Format: list

[[TicketQuery(version=0.6|0.7&resolution=duplicate)]]

This is displayed as:

No results

[[TicketQuery(id=123)]]

This is displayed as:

No results

Format: compact

[[TicketQuery(version=0.6|0.7&resolution=duplicate, compact)]]

This is displayed as:

No results

Format: count

[[TicketQuery(version=0.6|0.7&resolution=duplicate, count)]]

This is displayed as:

0

Format: progress

[[TicketQuery(milestone=0.12.8&group=type,format=progress)]]

This is displayed as:

Format: table

You can choose the columns displayed in the table format (format=table)
using col=<field>. You can specify multiple fields and the order they are
displayed by placing pipes (|) between the columns:

[[TicketQuery(max=3,status=closed,order=id,desc=1,format=table,col=resolution|summary|owner|reporter)]]

This is displayed as:

Results (1 - 3 of 11)

1
2
3
4

Ticket |
Resolution |
Summary |
Owner |
Reporter
---|---|---|---|---
#15 | worksforme | Problems with
multiple open DataSeeker windows
| |
aschn
#10 | fixed | cyrilic char are not
shown
| somebody | andib
#9 | invalid | Test again for e-mail
notification
| andib | andib

1
2
3
4

Full rows

In table format you can specify full rows using rows=<field>:

[[TicketQuery(max=3,status=closed,order=id,desc=1,format=table,col=resolution|summary|owner|reporter,rows=description)]]

This is displayed as:

Results (1 - 3 of 11)

1
2
3
4

Ticket |
Resolution |
Summary |
Owner |
Reporter
---|---|---|---|---
#15 | worksforme | Problems with
multiple open DataSeeker windows
| |
aschn
Description |

In the past, I noticed crashes when multiple DataSeeker? windows exist.
Unfortunately, I couldn't find a scheme when that happens and when not. I'll
report relevant observations here.

The bug most likely just occurs after switching between these windows and
after executing a search then.

More details have to be added.

#10 | fixed | cyrilic char are not
shown
| somebody | andib
Description |

something wrong with codepage handling

#9 | invalid | Test again for e-mail
notification
| andib | andib
Description |

as it still does not work

1
2
3
4


See also: [TracQuery],
[TracTickets],
[TracReports]

Last modified 2 years
ago
Last modified on Jan 13, 2020,
10:21:06 PM


Related

Tickets: #13
Tickets: #14