Index: trac/ticket/web_ui.py =================================================================== --- trac/ticket/web_ui.py (revision 7349) +++ trac/ticket/web_ui.py (working copy) @@ -26,7 +26,7 @@ from genshi.builder import tag from trac.attachment import AttachmentModule -from trac.config import BoolOption, Option, IntOption, _TRUE_VALUES +from trac.config import BoolOption, Option, IntOption, ListOption, _TRUE_VALUES from trac.core import * from trac.mimeview.api import Mimeview, IContentConverter, Context from trac.resource import Resource, get_resource_url, \ @@ -105,6 +105,10 @@ If set to 'default', this is equivalent to 'yes' for new environments but keeps the old behavior for upgraded environments (i.e. 'no'). (''since 0.11'').""") + + unlinked_fields = ListOption('ticket', 'unlinked_fields', + default=['estimatedhours', 'hours', 'totalhours'], + doc="fields to exclude from AutoQuery markup") # IContentConverter methods @@ -1029,6 +1033,14 @@ for key in field_changes: ticket[key] = field_changes[key]['new'] + def _query_link(self, req, name, value): + """return a link to /query with the appropriate name and value""" + query = req.href('query', **{name:value}) + args = self.env.config.get('query', 'default_anonymous_query') + if args: + query = '%s&%s' % (query, args) + return tag.a(value, href=query) + def _prepare_fields(self, req, ticket): context = Context.from_request(req, ticket.resource) fields = [] @@ -1036,6 +1048,10 @@ name = field['name'] type_ = field['type'] + # enable a link to custom query for the field + if name not in self.unlinked_fields: + field['rendered'] = self._query_link(req, name, ticket[name]) + # per field settings if name in ('summary', 'reporter', 'description', 'status', 'resolution'): @@ -1226,7 +1242,9 @@ 'attachments': AttachmentModule(self.env).attachment_data(context), 'action_controls': action_controls, 'action': selected_action, - 'change_preview': change_preview + 'change_preview': change_preview, + 'reporter_link': self._query_link(req, 'reporter', ticket['reporter']), + 'owner_link': self._query_link(req, 'owner', ticket['owner']) }) def rendered_changelog_entries(self, req, ticket, when=None): Index: trac/ticket/templates/ticket.html =================================================================== --- trac/ticket/templates/ticket.html (revision 7349) +++ trac/ticket/templates/ticket.html (working copy) @@ -135,9 +135,9 @@ not in ('type', 'owner')]"> Reported by: - ${authorinfo(ticket.reporter)} + ${reporter_link} Owned by: - ${ticket.owner and authorinfo(ticket.owner) or ''} + ${owner_link}