Changeset 3617

Show
Ignore:
Timestamp:
05/06/08 05:33:47 (7 months ago)
Author:
coderanger
Message:

Update to latest Trac APIs. Add README.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • wikirenameplugin/0.11/setup.py

    r3416 r3617  
    11#!/usr/bin/env python 
    22# -*- coding: iso-8859-1 -*- 
     3import os 
    34 
    45from setuptools import setup 
     
    67setup( 
    78    name = 'TracWikiRename', 
    8     version = '2.0', 
     9    version = '2.1', 
    910    packages = ['wikirename'], 
    10     package_data={ 'wikirename' : [ 'templates/*.html' ] }, 
     11    package_data = {'wikirename': ['templates/*.html']}, 
    1112 
    12     author = "Noah Kantrowitz", 
    13     author_email = "noah@coderanger.net", 
    14     description = "Add simple support for renaming/moving wiki pages", 
    15     long_description = """Adds basic support for renaming wiki pages. A console script is provided, as is a WebAdmin module. \ 
    16                           Please read the notice on the homepage for a list of known shortcomings.""", 
    17     license = "BSD", 
    18     keywords = "trac plugin wiki page rename", 
    19     url = "http://trac-hacks.org/wiki/WikiRenamePlugin", 
     13    author = 'Noah Kantrowitz', 
     14    author_email = 'noah@coderanger.net', 
     15    description = 'Add simple support for renaming/moving wiki pages', 
     16    long_description = open(os.path.join(os.path.dirname(__file__), 'README')).read(), 
     17    license = 'BSD', 
     18    keywords = 'trac 0.11 plugin wiki page rename', 
     19    url = 'http://trac-hacks.org/wiki/WikiRenamePlugin', 
    2020    classifiers = [ 
    2121        'Framework :: Trac', 
    2222    ], 
    2323     
     24    install_requires = ['Trac'], 
     25     
    2426    entry_points = { 
    2527        'trac.plugins': [ 
    2628            'wikirename.web_ui = wikirename.web_ui', 
    27             'wikirename.ctxtnav = wikirename.ctxtnav [ctxtnav]', 
    2829        ], 
    2930        'console_scripts': [ 
     
    3132        ], 
    3233    }, 
    33      
    34     #install_requires = [], 
    35     # Waiting on the extras support patch for this 
    36     extras_require = { 
    37         'ctxtnav' : [ 'TracCtxtnavAdd>=2.0' ], 
    38     }, 
    3934) 
  • wikirenameplugin/0.11/wikirename/script.py

    r813 r3617  
     1#!/usr/bin/env python 
     2import sys 
     3import os 
     4import time 
     5import optparse 
     6 
    17from trac.core import * 
    28from trac.env import Environment 
    3 import sys, sre, os, time, optparse 
    49 
    510from wikirename.util import rename_page 
     
    1116    else: 
    1217        return os.getlogin() 
    13  
    1418 
    1519def main(*argv): 
  • wikirenameplugin/0.11/wikirename/util.py

    r1543 r3617  
    11#! /usr/bin/python 
    2 from trac.core import * 
    3 from trac.env import * 
    4  
    52import sys 
    6 import sre 
     3import re 
    74import os 
    85import time 
    96import optparse 
    107import urllib 
     8 
     9from trac.core import * 
     10from trac.env import * 
    1111 
    1212__all__ = ['main', 'rename_page'] 
     
    8383    for row in list(cursor): 
    8484        debug("Found a page with a backlink in it: %s (v%s)", row[1], row[0]) 
    85         newtext = sre.sub('\[wiki:%s'%oldname,'[wiki:%s'%newname,row[2]) 
     85        newtext = re.sub('\[wiki:%s'%oldname,'[wiki:%s'%newname,row[2]) 
    8686        cursor.execute('UPDATE wiki SET text=%s WHERE name=%s AND version=%s', (newtext,row[1],row[0])) 
    8787 
  • wikirenameplugin/0.11/wikirename/web_ui.py

    r2211 r3617  
     1# Created by Noah Kantrowitz 
     2# Copyright (c) 2008 Noah Kantrowitz. All rights reserved. 
     3import urllib 
     4 
    15from trac.core import * 
    26from trac.perm import IPermissionRequestor 
    3 from trac.web.chrome import ITemplateProvider 
     7from trac.web.chrome import ITemplateProvider, add_ctxtnav 
     8from trac.web.api import IRequestFilter 
    49from trac.admin.web_ui import IAdminPanelProvider 
    510from genshi.core import Markup 
     
    712from wikirename.util import rename_page 
    813 
    9 import urllib 
    10  
    1114class WikiRenameModule(Component): 
    1215    """An evil module that adds a rename button to the wiki UI.""" 
    1316  
    14     implements(IPermissionRequestor, IAdminPanelProvider, ITemplateProvider) 
     17    implements(IPermissionRequestor, IAdminPanelProvider, ITemplateProvider, 
     18               IRequestFilter) 
    1519     
    1620    # IPermissionRequestor methods 
     
    2024    # IAdminPanelProvider methods 
    2125    def get_admin_panels(self, req): 
    22         if req.perm.has_permission('WIKI_RENAME') or req.perm.has_permission('WIKI_ADMIN'): 
     26        perm = req.perm('wiki') 
     27        if 'WIKI_RENAME' in perm or 'WIKI_ADMIN' in perm: 
    2328            yield ('general', 'General', 'wikirename', 'Wiki Rename') 
    2429             
     
    3035        } 
    3136         
    32         if 'submit' in req.args.keys()
     37        if req.method == 'POST'
    3338            if not data['src'] or not data['dest']: 
    3439                raise TracError, "Please provide both the old and new names" 
     
    5055    def get_htdocs_dirs(self): 
    5156        return [] 
     57     
     58    # IRequestFilter methods 
     59    def pre_process_request(self, req, handler): 
     60        return handler 
     61             
     62    def post_process_request(self, req, template, data, content_type): 
     63        if req.path_info.startswith('/wiki') or req.path_info == '/': 
     64            page = data['page'] 
     65            perm = req.perm(page.resource) 
     66            if 'WIKI_RENAME' in perm or 'WIKI_ADMIN' in perm: 
     67                href = req.href.admin('general','wikirename',  
     68                                      redirect='1', src_page=page.name) 
     69                add_ctxtnav(req, 'Rename page', href) 
     70        return template, data, content_type