Changeset 2980

Show
Ignore:
Timestamp:
01/04/08 21:20:44 (8 months ago)
Author:
athomas
Message:

Partial port to 0.11.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • changelogplugin/0.11/tracchangelog/tracchangelog.py

    r732 r2980  
    1 # tracchangelog plugin 
    2  
    31from trac.core import * 
    42from trac.util import escape, Markup 
    5 from trac.wiki.api import IWikiMacroProvider 
     3from trac.wiki.api import parse_args 
     4from trac.wiki.macros import WikiMacroBase 
    65from trac.wiki.formatter import wiki_to_html 
    76from trac.util import format_datetime 
    87from StringIO import StringIO 
    98 
    10 import pydoc 
    119 
    12 class TracChangeLogPlugin(Component): 
     10class SourceLogMacro(WikiMacroBase): 
    1311    """ Provides the macro 
    1412    {{{ 
    15        [[ChangeLog(path[,limit[,rev]])]] 
     13       [[SourceLog(path[,limit[,rev]])]] 
    1614    }}} 
    1715    which dumps the change log for path of revision rev, back 
     
    1917    """ 
    2018 
    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) 
    2226 
    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: 
    3328            return Markup('<i>Changelog not available</i>') 
    3429 
     
    4540        else: 
    4641            limit = int(limit) 
    47          
     42 
    4843        node = repo.get_node(path, rev) 
    4944        out = StringIO() 
    5045        for npath, nrev, nlog in node.get_history(limit): 
    5146            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)); 
    5349        return out.getvalue()