Changeset 708


Ignore:
Timestamp:
11/04/08 09:13:17 (5 years ago)
Author:
aculapov
Message:
  • moved to oforgeplugin
Location:
trunk/plugins
Files:
1 added
1 deleted
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/plugins/oforgeplugin/oforge/macros.py

    r471 r708  
    77from trac.core import * 
    88from trac.util.html import escape, html 
     9from trac.util.compat import sorted, set 
    910from trac.resource import Resource, get_resource_url, get_resource_summary, render_resource_link 
    10 from trac.util.compat import sorted, set 
     11from trac.web.chrome import ITemplateProvider, Chrome 
     12from trac.wiki import wiki_to_html, wiki_to_oneliner 
    1113from trac.wiki.macros import WikiMacroBase 
    1214from trac.wiki.api import WikiSystem 
    13 from trac.wiki import wiki_to_html, wiki_to_oneliner 
     15from trac.wiki.web_ui import WikiModule 
     16from trac.wiki.model import WikiPage 
    1417from tractags.api import TagSystem 
     18 
     19 
     20class WikiHistoryMacro(WikiMacroBase): 
     21    """ 
     22    This macro displays the wiki history as in the History page. 
     23    [[WikiHistory()]] 
     24    """ 
     25    implements(ITemplateProvider) 
     26 
     27    # ITemplateProvider 
     28    def get_templates_dirs(self): 
     29        from pkg_resources import resource_filename 
     30        return [resource_filename(__name__, 'templates')] 
     31    def get_htdocs_dirs(self): 
     32        return [] 
     33 
     34    def expand_macro(self, formatter, name, content): 
     35        req = formatter.req 
     36        pagename = req.args.get('page', 'WikiStart') 
     37        version = req.args.get('version') 
     38 
     39        pagename = pagename.strip('/') 
     40        page = WikiPage(self.env, pagename, version=version) 
     41         
     42        if not page.exists: 
     43            raise TracError(_("Page %(name)s does not exist", name=page.name)) 
     44        manager = WikiModule(self.env) 
     45        data = manager._page_data(req, page, 'history') 
     46 
     47        history = [] 
     48        for version, date, author, comment, ipnr in page.get_history(): 
     49            history.append({ 
     50                'version': version, 
     51                'date': date, 
     52                'author': author, 
     53                'comment': comment, 
     54                'ipnr': ipnr 
     55            }) 
     56             
     57        data.update({'history': history, 'resource': page.resource}) 
     58        template = Chrome(self.env).load_template('wiki_history.html', method='xhtml') 
     59        data = Chrome(self.env).populate_data(formatter.req, data) 
     60 
     61        return template.generate(**data) 
    1562 
    1663class EmbedFlashMacro(WikiMacroBase): 
Note: See TracChangeset for help on using the changeset viewer.