Ticket #7562: autoquery_patch_linked_fields_r7508.diff
| File autoquery_patch_linked_fields_r7508.diff, 4.3 KB (added by Jeff Hammel <jhammel@…>, 4 months ago) |
|---|
-
trac/ticket/web_ui.py
125 125 but keeps the old behavior for upgraded environments (i.e. 'no'). 126 126 (''since 0.11'').""") 127 127 128 unlinked_fields = ListOption('ticket', 'unlinked_fields',129 default=['estimatedhours', 'hours', 'totalhours'],130 doc="fields to exclude from AutoQuery markup")128 linked_fields = ListOption('ticket', 'linked_fields', 129 default=['reporter', 'owner', 'priority', 'type', 'status', 'component', 'version'], 130 doc="fields to link to queries") 131 131 132 132 # IContentConverter methods 133 133 … … 1064 1064 for key in field_changes: 1065 1065 ticket[key] = field_changes[key]['new'] 1066 1066 1067 def _query_link(self, req, name, value ):1067 def _query_link(self, req, name, value, text=None): 1068 1068 """return a link to /query with the appropriate name and value""" 1069 1069 query = req.href('query', **{name:value}) 1070 1070 args = self.env.config.get('query', 'default_anonymous_query') 1071 1071 if args: 1072 1072 query = '%s&%s' % (query, args) 1073 return tag.a( value, href=query)1073 return tag.a(text or value, href=query) 1074 1074 1075 1075 def _prepare_fields(self, req, ticket): 1076 1076 context = Context.from_request(req, ticket.resource) … … 1080 1080 type_ = field['type'] 1081 1081 1082 1082 # enable a link to custom query for the field 1083 if name not in self.unlinked_fields:1083 if name in self.linked_fields and type != 'textarea': 1084 1084 field['rendered'] = self._query_link(req, name, ticket[name]) 1085 1085 1086 1086 # per field settings … … 1149 1149 value = ticket.values.get(name) 1150 1150 if value in ('1', '0'): 1151 1151 field['rendered'] = value == '1' and _('yes') or _('no') 1152 if name in self.linked_fields: 1153 field['rendered'] = self._query_link(req, name, value, field['rendered']) 1152 1154 1153 1155 # ensure sane defaults 1154 1156 field.setdefault('optional', False) … … 1270 1272 ticket.values.update(values) 1271 1273 1272 1274 context = Context.from_request(req, ticket.resource) 1275 1276 # Display the owner and reporter links when not obfuscated 1277 chrome = Chrome(self.env) 1278 for user in 'reporter', 'owner': 1279 if chrome.format_author(req, ticket[user]) == ticket[user]: 1280 data['%s_link' % user] = self._query_link(req, user, 1281 ticket[user]) 1282 1273 1283 data.update({ 1274 1284 'context': context, 1275 1285 'fields': fields, 'changes': changes, … … 1278 1288 'action_controls': action_controls, 1279 1289 'action': selected_action, 1280 1290 'change_preview': change_preview, 1281 'reporter_link': self._query_link(req, 'reporter', ticket['reporter']),1282 'owner_link': self._query_link(req, 'owner', ticket['owner'])1283 1291 }) 1284 1292 1285 1293 def rendered_changelog_entries(self, req, ticket, when=None): -
trac/ticket/templates/ticket.html
136 136 py:with="fields = [f for f in fields if not f.skip and f.name 137 137 not in ('type', 'owner')]"> 138 138 <tr> 139 <th id="h_reporter">Reported by:</th> 140 <td headers="h_reporter" class="searchable">${reporter_link}</td> 139 <th id="h_reporter">Reported by:</th> 140 <td headers="h_reporter" class="searchable"> 141 ${defined('reporter_link') and reporter_link or authorinfo(ticket.reporter)} 142 </td> 141 143 <th id="h_owner">Owned by:</th> 142 <td headers="h_owner">${owner_link} 144 <td headers="h_owner"> 145 ${defined('owner_link') and owner_link or authorinfo(ticket.owner)} 143 146 </td> 144 147 </tr> 145 148 <tr py:for="row in group(fields, 2, lambda f: f.type != 'textarea')"
