Changeset 3617
- Timestamp:
- 05/06/08 05:33:47 (7 months ago)
- Files:
-
- wikirenameplugin/0.11/README (added)
- wikirenameplugin/0.11/setup.py (modified) (3 diffs)
- wikirenameplugin/0.11/wikirename/ctxtnav.py (deleted)
- wikirenameplugin/0.11/wikirename/script.py (modified) (2 diffs)
- wikirenameplugin/0.11/wikirename/templates/wikirename.cs (deleted)
- wikirenameplugin/0.11/wikirename/util.py (modified) (2 diffs)
- wikirenameplugin/0.11/wikirename/web_ui.py (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
wikirenameplugin/0.11/setup.py
r3416 r3617 1 1 #!/usr/bin/env python 2 2 # -*- coding: iso-8859-1 -*- 3 import os 3 4 4 5 from setuptools import setup … … 6 7 setup( 7 8 name = 'TracWikiRename', 8 version = '2. 0',9 version = '2.1', 9 10 packages = ['wikirename'], 10 package_data ={ 'wikirename' : [ 'templates/*.html' ]},11 package_data = {'wikirename': ['templates/*.html']}, 11 12 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', 20 20 classifiers = [ 21 21 'Framework :: Trac', 22 22 ], 23 23 24 install_requires = ['Trac'], 25 24 26 entry_points = { 25 27 'trac.plugins': [ 26 28 'wikirename.web_ui = wikirename.web_ui', 27 'wikirename.ctxtnav = wikirename.ctxtnav [ctxtnav]',28 29 ], 29 30 'console_scripts': [ … … 31 32 ], 32 33 }, 33 34 #install_requires = [],35 # Waiting on the extras support patch for this36 extras_require = {37 'ctxtnav' : [ 'TracCtxtnavAdd>=2.0' ],38 },39 34 ) wikirenameplugin/0.11/wikirename/script.py
r813 r3617 1 #!/usr/bin/env python 2 import sys 3 import os 4 import time 5 import optparse 6 1 7 from trac.core import * 2 8 from trac.env import Environment 3 import sys, sre, os, time, optparse4 9 5 10 from wikirename.util import rename_page … … 11 16 else: 12 17 return os.getlogin() 13 14 18 15 19 def main(*argv): wikirenameplugin/0.11/wikirename/util.py
r1543 r3617 1 1 #! /usr/bin/python 2 from trac.core import *3 from trac.env import *4 5 2 import sys 6 import sre3 import re 7 4 import os 8 5 import time 9 6 import optparse 10 7 import urllib 8 9 from trac.core import * 10 from trac.env import * 11 11 12 12 __all__ = ['main', 'rename_page'] … … 83 83 for row in list(cursor): 84 84 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]) 86 86 cursor.execute('UPDATE wiki SET text=%s WHERE name=%s AND version=%s', (newtext,row[1],row[0])) 87 87 wikirenameplugin/0.11/wikirename/web_ui.py
r2211 r3617 1 # Created by Noah Kantrowitz 2 # Copyright (c) 2008 Noah Kantrowitz. All rights reserved. 3 import urllib 4 1 5 from trac.core import * 2 6 from trac.perm import IPermissionRequestor 3 from trac.web.chrome import ITemplateProvider 7 from trac.web.chrome import ITemplateProvider, add_ctxtnav 8 from trac.web.api import IRequestFilter 4 9 from trac.admin.web_ui import IAdminPanelProvider 5 10 from genshi.core import Markup … … 7 12 from wikirename.util import rename_page 8 13 9 import urllib10 11 14 class WikiRenameModule(Component): 12 15 """An evil module that adds a rename button to the wiki UI.""" 13 16 14 implements(IPermissionRequestor, IAdminPanelProvider, ITemplateProvider) 17 implements(IPermissionRequestor, IAdminPanelProvider, ITemplateProvider, 18 IRequestFilter) 15 19 16 20 # IPermissionRequestor methods … … 20 24 # IAdminPanelProvider methods 21 25 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: 23 28 yield ('general', 'General', 'wikirename', 'Wiki Rename') 24 29 … … 30 35 } 31 36 32 if 'submit' in req.args.keys():37 if req.method == 'POST': 33 38 if not data['src'] or not data['dest']: 34 39 raise TracError, "Please provide both the old and new names" … … 50 55 def get_htdocs_dirs(self): 51 56 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
