wiki:TicketQuery

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 the rows 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: 0 [[TicketQuery(status=new&milestone=,count)]]
Number of new tickets: 0 [[TicketQuery(status=new,count)]]
Number of reopened tickets: 0 [[TicketQuery(status=reopened,count)]]
Number of assigned tickets: 0 [[TicketQuery(status=assigned,count)]]
Number of invalid tickets: 2 [[TicketQuery(status=closed,resolution=invalid,count)]]
Number of worksforme tickets: 1 [[TicketQuery(status=closed,resolution=worksforme,count)]]
Number of duplicate tickets: 6 [[TicketQuery(status=closed,resolution=duplicate,count)]]
Number of wontfix tickets: 2 [[TicketQuery(status=closed,resolution=wontfix,count)]]
Number of fixed tickets: 79 [[TicketQuery(status=closed,resolution=fixed,count)]]
Number of untriaged tickets (milestone unset): 0 [[TicketQuery(status!=closed,milestone=,count)]]
Total number of tickets: 90 [[TicketQuery(count)]]
Number of tickets reported or owned by current user: 0 [[TicketQuery(reporter=$USER,or,owner=$USER,count)]]
Number of tickets created this month: 0 [[TicketQuery(created=thismonth..,count)]]
Number of closed Firefox tickets: 0 [[TicketQuery(status=closed,keywords~=firefox,count)]]
Number of closed Opera tickets: 0 [[TicketQuery(status=closed,keywords~=opera,count)]]
Number of closed tickets affecting Firefox and Opera: 0 [[TicketQuery(status=closed,keywords~=firefox opera,count)]]
Number of closed tickets affecting Firefox or Opera: 0 [[TicketQuery(status=closed,keywords~=firefox|opera,count)]]
Number of tickets that affect Firefox or are closed and affect Opera: 0 [[TicketQuery(status=closed,keywords~=opera,or,keywords~=firefox,count)]]
Number of closed Firefox tickets that don't affect Opera: 0 [[TicketQuery(status=closed,keywords~=firefox -opera,count)]]
Last 3 modified tickets: #78, #79, #90 [[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 madair ironss
Summary New Zealand Map Grid transformation

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 90)

1 2 3 4 5 6 7 8 9 10 11
Ticket Resolution Summary Owner Reporter
#90 worksforme Unknown projection.. Works on 0.3.0.. fails on 1.1.0 madair duncanrm
#89 fixed Enable smaller custom builds of Proj4js through more modularisation madair ejn
#88 fixed Add EPSG3857.js file, official web mercator EPSG code madair yjacolin
1 2 3 4 5 6 7 8 9 10 11

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 90)

1 2 3 4 5 6 7 8 9 10 11
Ticket Resolution Summary Owner Reporter
#90 worksforme Unknown projection.. Works on 0.3.0.. fails on 1.1.0 madair duncanrm
Description

Hi.. I get an "unknown projection" error on one of these:

Proj4js.defsEPSG:3107 = "+proj=lcc +lat_1=-28 +lat_2=-36 +lat_0=-32 +lon_0=135 +x_0=1000000 +y_0=2000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs";

Proj4js.defsEPSG:4283 = "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs";

The projections work fine with v0.3.0 of Proj4Js but fail when used in version 1.1.0

Any ideas?

With many thanks.

#89 fixed Enable smaller custom builds of Proj4js through more modularisation madair ejn
Description

Attached to this ticket is a patch which breaks out various parts of the Proj4js code into separate files. The result of this modularisation is a smaller core Proj4js, which is particularly of interest for those wanting to use a custom build of Proj4js or reduce the initial load weight.

Highlights:

  • WKT loading and dynamic loading of definitions are put into separate module files which monkey-patch the classes to (re)enable these features, reducing the size of the base code.
  • The number of datums, ellipsoids and prime meridians defined by default is reduced to one (WGS84 / Greenwich).
    • Datums and ellipsoids may be dynamically loaded in the same way as projCode (iff the loader module is included!)
      • This feature increases the amount of functions, and therefore the size of the core library, but allows increased flexibility for small custom builds where the coordinate systems which will be used are not all known in advance.
    • Prime meridians may be included individually
    • "Compatibility files" are provided to bulk-load the prime eridians, ellipsoids, datums and coordinate systems previously defined in the base Proj4js
  • the default compile using library.cfg is functionally identical to the previous version, with the addition of dynamic loading of datums and ellipsoids.
  • two sample build files for minimalistic builds (base.cfg and useloader.cfg) are supplied.

One minor downside of the modularisation is that the build from library.cfg actually increases very slightly in size, but I believe that this is offset by the potential size decreases from custom builds: of course, users should then be guided to use these!

I'm happy to improve this patch if necessary for acceptance: particularly the dynamic loading of ellipsoids and datums is maybe a bit too much flexibility and works partly against the aim of this patch: I personally think that an acceptable alternative would be to still reduce the default lists of these to one and require manually (or via the "compatibility files") adding those which are wanted, as is the case for the prime meridians.

Note that the only reason I didn't add dynamic loading of prime meridians (for consistency with datums and ellipsoids) is because this would have required significant refactoring of the code as the point at which these are used is buried deep in a switch statement while parsing the definitions. If necessary I could add this to the patch.

#88 fixed Add EPSG3857.js file, official web mercator EPSG code madair yjacolin
Description

3857 EPSG code is now the official code for "Web Mercator" projection. 900913 EPSG code should not be used anymore.

As I don't think we should remove now 900913 code from poj4js, I think we should add 3857 code file.

1 2 3 4 5 6 7 8 9 10 11


See also: TracQuery, TracTickets, TracReports

Last modified 2 years ago Last modified on May 8, 2022, 3:13:10 PM
Note: See TracWiki for help on using the wiki.