wiki:TicketQuery

Version 1 (modified by trac, 5 years ago) ( diff )

--

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: 2 [[TicketQuery(status=new&milestone=,count)]]
Number of new tickets: 53 [[TicketQuery(status=new,count)]]
Number of reopened tickets: 1 [[TicketQuery(status=reopened,count)]]
Number of assigned tickets: 10 [[TicketQuery(status=assigned,count)]]
Number of invalid tickets: 15 [[TicketQuery(status=closed,resolution=invalid,count)]]
Number of worksforme tickets: 4 [[TicketQuery(status=closed,resolution=worksforme,count)]]
Number of duplicate tickets: 21 [[TicketQuery(status=closed,resolution=duplicate,count)]]
Number of wontfix tickets: 20 [[TicketQuery(status=closed,resolution=wontfix,count)]]
Number of fixed tickets: 1458 [[TicketQuery(status=closed,resolution=fixed,count)]]
Number of untriaged tickets (milestone unset): 2 [[TicketQuery(status!=closed,milestone=,count)]]
Total number of tickets: 1583 [[TicketQuery(count)]]
Number of tickets reported or owned by current user: 1 [[TicketQuery(reporter=$USER,or,owner=$USER,count)]]
Number of tickets created this month: 7 [[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: #1582, #1573, #1583 [[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 Jari Häkkinen Jari Häkkinen
Summary Reformat plug-ins archive/download page to look like the rest of the trac environment.

Format: list

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

This is displayed as:

#4
Spike Lowess
#5
Center on assay
#6
QQPlot
#7
Merge on genesymbol
#8
COPA
#9
Error in ReplicateError
#10
ReplicateError
#11
Pinbaes normalization
#16
BasicReporter and BasicSpot
#18
AnnotationFiletr
#19
RMA plugin should check that cel files are assigned to correct cdf.
#20
extra values pass through
#92
Create Illumina SNP raw data type
#125
MeV ... files are now supported (by the BASEcore) in the BASE analysis tree
#192
MeV unable to launch appplication ... class not found exception
#245
net.sf.basedb.illumina: Detection P-value fails if there is no negative controls in bioassayset
#296
VirtualArray plug-in can't be installed
#347
Exception when trying to register more than one specimen tube for a case
#393
Change default value for protocol in "RNA quality control - create aliquots" wizard step 2
#634
Retraction wizard
#866
Implement the "Start page" extension

[[TicketQuery(id=123)]]

This is displayed as:

#123
Update BasePlug-ins' firstpage

Format: compact

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

This is displayed as:

#4, #5, #6, #7, #8, #9, #10, #11, #16, #18, #19, #20, #92, #125, #192, #245, #296, #347, #393, #634, #866

Format: count

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

This is displayed as:

21

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

1 2 3 4 5 6 7 8 9 10 11
Ticket Resolution Summary Owner Reporter
#1580 fixed NullPointerException when importing an update release Nicklas Nordborg Nicklas Nordborg
#1579 fixed WGS FASTQ management wizard should use new API method for checking if a file exists Nicklas Nordborg Nicklas Nordborg
#1578 fixed Implement a method for getting file metadata without opening a stream Nicklas Nordborg Nicklas Nordborg
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 1518)

1 2 3 4 5 6 7 8 9 10 11
Ticket Resolution Summary Owner Reporter
#1580 fixed NullPointerException when importing an update release Nicklas Nordborg Nicklas Nordborg
Description
java.lang.RuntimeException: Import of '/json/Q000001.json' failed: null
  at net.sf.basedb.relax.plugins.ReleaseImporterPlugin.doImport(ReleaseImporterPlugin.java:804)
  at net.sf.basedb.relax.plugins.ReleaseImporterPlugin.run(ReleaseImporterPlugin.java:374)
  at net.sf.basedb.core.PluginExecutionRequest.invoke(PluginExecutionRequest.java:117)
  at net.sf.basedb.core.InternalJobQueue$JobRunner.run(InternalJobQueue.java:574)
  at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.NullPointerException
  at net.sf.basedb.relax.plugins.ReleaseImporterPlugin.importCohortItems(ReleaseImporterPlugin.java:1259)
  at net.sf.basedb.relax.plugins.ReleaseImporterPlugin.doImport(ReleaseImporterPlugin.java:791)
  ... 4 more

It seems to be related to the code that was added in #1547 to allow for any-to-any links. There is a check for null on the line after so we probably only need to re-order them.

#1579 fixed WGS FASTQ management wizard should use new API method for checking if a file exists Nicklas Nordborg Nicklas Nordborg
Description

See #1578. The current method that opens a stream suffers from a problem that causes the wizard to crash if the number of scanned files is larger than the limit set by ulimit -n.

net.schmizz.sshj.sftp.SFTPException: Failure
        at net.schmizz.sshj.sftp.Response.error(Response.java:140)
        at net.schmizz.sshj.sftp.Response.ensurePacketTypeIs(Response.java:117)
        at net.schmizz.sshj.sftp.SFTPEngine.open(SFTPEngine.java:153)
        at net.schmizz.sshj.sftp.SFTPClient.open(SFTPClient.java:68)
        at net.schmizz.sshj.sftp.SFTPClient.open(SFTPClient.java:73)
        at net.sf.basedb.opengrid.AbstractSession.getRemoteInputStream(AbstractSession.java:408)
        at net.sf.basedb.opengrid.AbstractSession.readFile(AbstractSession.java:390)
        at net.sf.basedb.reggie.servlet.WgsFastqServlet.doPost(WgsFastqServlet.java:314)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)
        at net.sf.basedb.clients.web.extensions.ServletWrapper.service(ServletWrapper.java:81)
        at net.sf.basedb.clients.web.servlet.ExtensionsServlet.doGet(ExtensionsServlet.java:121)
        at net.sf.basedb.clients.web.servlet.ExtensionsServlet.doPost(ExtensionsServlet.java:128)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
        at net.sf.basedb.clients.web.servlet.ContentSecurityPolicyFilter.doFilter(ContentSecurityPolicyFilter.java:171)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
        at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:673)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360)
        at org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:433)
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
        at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
        at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.base/java.lang.Thread.run(Thread.java:833)
java.lang.RuntimeException: net.schmizz.sshj.sftp.SFTPException: Failure
        at net.sf.basedb.opengrid.AbstractSession.readFile(AbstractSession.java:395)
        at net.sf.basedb.reggie.servlet.WgsFastqServlet.doPost(WgsFastqServlet.java:314)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)
        at net.sf.basedb.clients.web.extensions.ServletWrapper.service(ServletWrapper.java:81)
        at net.sf.basedb.clients.web.servlet.ExtensionsServlet.doGet(ExtensionsServlet.java:121)
        at net.sf.basedb.clients.web.servlet.ExtensionsServlet.doPost(ExtensionsServlet.java:128)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
        at net.sf.basedb.clients.web.servlet.ContentSecurityPolicyFilter.doFilter(ContentSecurityPolicyFilter.java:171)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
        at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:673)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360)
        at org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:433)
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
        at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
        at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: net.schmizz.sshj.sftp.SFTPException: Failure
        at net.schmizz.sshj.sftp.Response.error(Response.java:140)
        at net.schmizz.sshj.sftp.Response.ensurePacketTypeIs(Response.java:117)
        at net.schmizz.sshj.sftp.SFTPEngine.open(SFTPEngine.java:153)
        at net.schmizz.sshj.sftp.SFTPClient.open(SFTPClient.java:68)
        at net.schmizz.sshj.sftp.SFTPClient.open(SFTPClient.java:73)
        at net.sf.basedb.opengrid.AbstractSession.getRemoteInputStream(AbstractSession.java:408)
        at net.sf.basedb.opengrid.AbstractSession.readFile(AbstractSession.java:390)
        ... 33 more

#1578 fixed Implement a method for getting file metadata without opening a stream Nicklas Nordborg Nicklas Nordborg
Description

The RemoteSession class have several methods for downloading a file, and some of them will return metadata such as size and modification date in a separate object (FileMetaData). There are cases when we only want to get the metadata without starting a download and there is really no need to open a stream. It would be nice to have separate method for this.

1 2 3 4 5 6 7 8 9 10 11


See also: TracQuery, TracTickets, TracReports

Note: See TracWiki for help on using the wiki.