Edgewall Software

Opened 9 years ago

Last modified 8 years ago

#10838 closed defect

TicketQuery progress display link ignores order= keys in milestone_groups query_args causing query error — at Initial Version

Reported by: ilewismsl Owned by:
Priority: normal Milestone: 1.0.2
Component: ticket system Version: 1.0
Severity: minor Keywords: TicketQuery progress
Cc: Branch:
Release Notes:
API Changes:
Internal Changes:

Description

Using the macro invocation

[[TicketQuery(owner=ian, format=progress)]]

in a wiki page creates a progress bar with links for various classes of ticket.

The resulting progress bar creates query URLs that work for all classes of ticket except for closed tickets. For closed tickets it produces a link that looks like:

/trac/msl/query?owner=ian&status=closed&group=resolution&order=time&col=id&col=summary&col=owner&col=type&col=priority&col=component&col=severity&col=time&col=changetime&max=0&order=id

This URL includes two order= keys: order=time near the begining and order=id at the end.

This confuses Trac and results in a runtime error.

All other classes of ticket, such as accepted tickets produce a link that looks like:

/trac/msl/query?owner=ian&status=accepted&max=0&order=id

with a single order=id statement.

The source of this error is that our milestone groups includes an order=time key.

We got this by direct copying from the sample at TracIni without much thought about what it meant.

[milestone-groups]
...
# optional extra param for the query (two additional columns: created and modified and sort on created)
closed.query_args = group=resolution,order=time,col=id,col=summary,col=owner,col=type,col=priority,col=component,col=severity,col=time,col=changetime
...

Error message

Trac detected an internal error:
TypeError: unhashable type: 'list'

Python traceback

Most recent call last: 
File "build/bdist.win32/egg/trac/web/main.py", line 497, in _dispatch_request
  dispatcher.dispatch(req)
File "build/bdist.win32/egg/trac/web/main.py", line 214, in dispatch
  resp = chosen_handler.process_request(req)
File "build/bdist.win32/egg/trac/ticket/query.py", line 939, in process_request
  max)
File "build/bdist.win32/egg/trac/ticket/query.py", line 77, in __init__
  self.order = synonyms.get(order, order)     # 0.11 compatibility

System information

User Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)

Trac 1.0
Docutils 0.8.1
Genshi 0.6 (without speedups)
mod_python 3.3.1
Pygments 1.4
pysqlite 2.4.1
Python 2.6.6 (r266:84297, Aug 24 2010, 18:46:32) [MSC v.1500 32 bit (Intel)]
setuptools 0.6c11
SQLite 3.5.9
Subversion 1.7.1 (r1186859)
jQuery 1.7.2

Change History (0)

Note: See TracTickets for help on using tickets.