Changeset 2980
- Timestamp:
- 01/04/08 21:20:44 (8 months ago)
- Files:
-
- changelogplugin/0.11 (copied) (copied from changelogplugin/0.9)
- changelogplugin/0.11/tracchangelog/tracchangelog.py (modified) (3 diffs)
- changelogplugin/0.9/setup.py (deleted)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
changelogplugin/0.11/tracchangelog/tracchangelog.py
r732 r2980 1 # tracchangelog plugin2 3 1 from trac.core import * 4 2 from trac.util import escape, Markup 5 from trac.wiki.api import IWikiMacroProvider 3 from trac.wiki.api import parse_args 4 from trac.wiki.macros import WikiMacroBase 6 5 from trac.wiki.formatter import wiki_to_html 7 6 from trac.util import format_datetime 8 7 from StringIO import StringIO 9 8 10 import pydoc11 9 12 class TracChangeLogPlugin(Component):10 class SourceLogMacro(WikiMacroBase): 13 11 """ Provides the macro 14 12 {{{ 15 [[ ChangeLog(path[,limit[,rev]])]]13 [[SourceLog(path[,limit[,rev]])]] 16 14 }}} 17 15 which dumps the change log for path of revision rev, back … … 19 17 """ 20 18 21 implements(IWikiMacroProvider) 19 def expand_macro(self, formatter, name, content): 20 req = formatter.req 21 args, kwargs = parse_args(content) 22 args += [None, None] 23 path, limit, rev = args 24 limit = kwargs.pop('limit', limit) 25 rev = kwargs.pop('rev', rev) 22 26 23 def get_macros(self): 24 yield 'ChangeLog' 25 26 def get_macro_description(self, name): 27 return pydoc.getdoc(self) 28 29 def render_macro(self, req, name, content): 30 path, limit, rev = ([x.strip() for x in (content or '').split(',')] + [None, None])[0:3] 31 32 if not hasattr(req, 'authname'): 27 if 'CHANGESET_VIEW' not in req.perm: 33 28 return Markup('<i>Changelog not available</i>') 34 29 … … 45 40 else: 46 41 limit = int(limit) 47 42 48 43 node = repo.get_node(path, rev) 49 44 out = StringIO() 50 45 for npath, nrev, nlog in node.get_history(limit): 51 46 change = repo.get_changeset(nrev) 52 out.write(wiki_to_html("'''[%i] by %s on %s'''\n\n%s" % (nrev, change.author, format_datetime(change.date), change.message), self.env, req)); 47 out.write(wiki_to_html("'''[%i] by %s on %s'''\n\n%s" % (nrev, change.author, format_datetime(change.date), change.message), 48 self.env, req)); 53 49 return out.getvalue()
