Hi all, I've got some problems with my News product. For the rendering of it, I let the site owner choose between DTML Methods and Zope Page Templates. In the Add Form he can check a checkbox 'Add DTML Methods' or a checkbox 'Add Page Templates' (or both). In the __init__ method of my product this works as follows: def __init__(self, id, title='', zpt_add='', dtml_add=''): """Initialization News Product""" self.id = id self.title = title if dtml_add == 'yes': ## checkbox 'Add DTML Methods' checked self.dtmladd() if zpt_add == 'yes': ## checkbox 'Add Page Template' checked self.zptadd() One of the methods looks like this: def zptadd(self): """Check whether to add a Zope Page Template""" self.createZPT(self, 'News_template', '', self.init_News_template()) Which calls createZPT: security.declareProtected('Change News','_createZPT') def createZPT(self, parent, id, title, content): """Add a PageTemplate to the News product""" parent._setObject(id, ZopePageTemplate.ZopePageTemplate(id, text=content)) parent._getOb(id).pt_setTitle(title) This works all fine. But afterwards, when the site owner has (by accident) deleted the News_template, I want to give him the opportunity to add it again. I have tried it like this: meta_types = ( {'name': 'News Page Template', 'action': 'manage_addProduct/News/zptadd'}, ) This doesn't work, I get the following error: Traceback (innermost last): File /usr/lib/zope/lib/python/ZPublisher/Publish.py, line 150, in publish_module File /usr/lib/zope/lib/python/ZPublisher/Publish.py, line 114, in publish File /usr/lib/zope/lib/python/Zope/__init__.py, line 158, in zpublisher_exception_hook File /usr/lib/zope/lib/python/ZPublisher/Publish.py, line 98, in publish File /usr/lib/zope/lib/python/ZPublisher/mapply.py, line 88, in mapply (Object: zptadd) File /usr/lib/zope/lib/python/ZPublisher/Publish.py, line 39, in call_object (Object: zptadd) File /var/lib/zope/Products/News/News.py, line 218, in zptadd (Object: test) File /var/lib/zope/Products/News/News.py, line 225, in createZPT (Object: test) File /usr/lib/zope/lib/python/OFS/ObjectManager.py, line 219, in _setObject (Object: test) File /usr/lib/zope/lib/python/OFS/ObjectManager.py, line 72, in checkValidId (Object: test) Bad Request: The id "News_template" is invalid--it is already in use. Zope thinks that News_template already exists, but it doesn't. Can somebody help me? Greetz Nico
participants (1)
-
Nico de Boer