Changeset 3880
- Timestamp:
- 06/21/08 11:08:28 (4 months ago)
- Files:
-
- tagsplugin/trunk/tractags/api.py (modified) (3 diffs)
- tagsplugin/trunk/tractags/macros.py (modified) (3 diffs)
- tagsplugin/trunk/tractags/ticket.py (modified) (1 diff)
- tagsplugin/trunk/tractags/wiki.py (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
tagsplugin/trunk/tractags/api.py
r3878 r3880 48 48 """Remove all tags from a resource.""" 49 49 50 def describe_tagged_resource(resource): 51 """Return a one line description of the tagged resource.""" 52 50 53 51 54 class DefaultTagProvider(Component): … … 154 157 raise 155 158 159 def describe_tagged_resource(self, resource): 160 return '' 161 156 162 157 163 class TagSystem(Component): … … 235 241 return set([t.strip() for t in self._tag_split.split(text) if t.strip()]) 236 242 243 def describe_tagged_resource(self, resource): 244 """Return a short description of a taggable resource.""" 245 provider = self._get_provider(resource.realm) 246 if hasattr(provider, 'describe_tagged_resource'): 247 return provider.describe_tagged_resource(resource) 248 else: 249 return '' 250 237 251 # IPermissionRequestor methods 238 252 def get_permission_actions(self): tagsplugin/trunk/tractags/macros.py
r3875 r3880 73 73 def expand_macro(self, formatter, name, content): 74 74 req = formatter.req 75 query_result = TagSystem(self.env).query(req, content) 75 tag_system = TagSystem(self.env) 76 query_result = tag_system.query(req, content) 76 77 add_stylesheet(req, 'tags/css/tractags.css') 77 78 … … 84 85 key=lambda r: unicode(r[0].id)): 85 86 tags = sorted(tags) 87 88 desc = tag_system.describe_tagged_resource(resource) 89 86 90 if tags: 87 91 rendered_tags = [ … … 89 93 for tag in tags 90 94 ] 91 li = builder.li(link(resource), ' (', rendered_tags[0],95 li = builder.li(link(resource), ' ', desc, ' (', rendered_tags[0], 92 96 [(' ', tag) for tag in rendered_tags[1:]], 93 97 ')') 94 98 else: 95 li = builder.li(link(resource) )99 li = builder.li(link(resource), ' ', desc) 96 100 ul(li, '\n') 97 101 return ul tagsplugin/trunk/tractags/ticket.py
r3033 r3880 98 98 ticket.save_changes(req.username, u'') 99 99 100 def describe_tagged_resource(self, resource): 101 assert resource.realm == 'ticket' 102 ticket = Ticket(self.env, resource.id) 103 if ticket.exists: 104 return '%s (%s)' % (ticket['summary'], ticket['status']) 105 else: 106 return '' 107 100 108 # Private methods 101 109 def _ticket_tags(self, ticket): tagsplugin/trunk/tractags/wiki.py
r3879 r3880 7 7 # 8 8 9 import re 9 10 from trac.core import * 10 11 from tractags.api import DefaultTagProvider, TagSystem … … 15 16 from trac.web.api import ITemplateStreamFilter 16 17 from trac.wiki.api import IWikiPageManipulator, IWikiChangeListener 18 from trac.wiki.model import WikiPage 17 19 from trac.util.compat import sorted 18 20 from genshi.builder import tag … … 24 26 realm = 'wiki' 25 27 28 first_head = re.compile('=\s+([^=]*)=') 29 26 30 def check_permission(self, perm, operation): 27 31 map = {'view': 'WIKI_VIEW', 'modify': 'WIKI_MODIFY'} 28 32 return super(WikiTagProvider, self).check_permission(perm, operation) \ 29 33 and map[operation] in perm 34 35 def describe_tagged_resource(self, resource): 36 assert resource.realm == 'wiki' 37 page = WikiPage(self.env, resource.id) 38 if page.exists: 39 ret = self.first_head.search(page.text) 40 return ret and ret.group(1) or '' 41 return '' 30 42 31 43
