diff --git a/wiki/browser/default.pt b/wiki/browser/default.pt index 1bc4c13..c188480 100644 --- a/wiki/browser/default.pt +++ b/wiki/browser/default.pt @@ -70,7 +70,7 @@
 
- Edit + Edit
diff --git a/wiki/browser/view.py b/wiki/browser/view.py index fc20888..c7bdf4a 100644 --- a/wiki/browser/view.py +++ b/wiki/browser/view.py @@ -102,7 +102,7 @@ class CreatePage(object): for link in lm.query(name=name): if link.target is None: link.update(target=page) - self.request.response.redirect('%s/edit.html' % + self.request.response.redirect('%s/@@edit.html' % absoluteURL(page, self.request)) return False diff --git a/wiki/generic/mixin.py b/wiki/generic/mixin.py index 515cda4..4f42499 100644 --- a/wiki/generic/mixin.py +++ b/wiki/generic/mixin.py @@ -27,6 +27,7 @@ from BTrees.OOBTree import OOBTree from persistent.mapping import PersistentMapping from zope.app.intid import IntIds from zope.app.intid.interfaces import IIntIds +from zope.app.keyreference.interfaces import IKeyReference from zope.cachedescriptors.property import Lazy from zope import component from zope.component import adapts @@ -89,12 +90,8 @@ class WikiManager(BaseWikiManager): self.wikiUids.remove(uid) def renameWiki(self, wiki, newName): - intIds = self.getPlugin(IIntIds) - self.removeWiki(wiki) - intIds.unregister(wiki) wiki.rename(newName) - intIds.register(wiki) - self.addWiki(wiki) + moveKeyReference(self.getPlugin(IIntIds), wiki) def listWikis(self): for uid in self.wikiUids: @@ -166,3 +163,12 @@ class LinkManager(BaseLinkManager): def getObject(self, uid): return self.manager.getObject(uid) + + +def moveKeyReference(intIds, obj): + """ Make sure entry in intIds utility is updated after a move or rename. + """ + key = IKeyReference(obj) + uid = intIds.getId(obj) + intIds.refs[uid] = key + intIds.ids[key] = uid