[Product-Developers] creating content inside a setup handler.
Gilles Lenfant
gilles.lenfant at ingeniweb.com
Tue Sep 16 15:29:23 UTC 2008
Le 16 sept. 08 à 17:16, Hans-Peter Locher a écrit :
> Hi,
> I'm working on a policy product which creates some content during
> installation.
> I have a custom folderish content type "Queue" which I want to add
> some instances of.
>
> The code check if there is already an object with the id, and only
> creates if that isn't the case.
> I was happy having my unit tests pass, unti I've started my Plone
> site and manually installed/ uninstalled the policy product.
>
> It happens that on installation content gets created as desired.
> But on uninstall, the objects get deleted (wtf)
>
>
> The code looks as follows:
>
> <snip>
> def create_content(portal):
> """ Creates queues and sets them to state active """
>
> logger.info("********** create content")
> wf = getToolByName(portal, 'portal_workflow')
> for item in CONTENT:
> if item['id'] in portal.objectIds():
> logger.info("Object %s already created , pass" %
> item['id'])
> else:
> portal.invokeFactory('Queue',
> item['id'],
> title=item['title'],
> description=item['description'])
> queue = getattr(portal, item['id'])
> wf.doActionFor(queue, 'activate')
> logger.info("%s created" % item['id'])
> <snip>
>
>
> Is this some new functionality that setuphandlers get a magic
> reverse or am I missing something?
>
> Thanks for any hints.
IIRC, the magic is in portal_quickinstaller that records lots of
changed and created stuffs during an install. And can revert all this
on uninstall.
--
Gilles Lenfant
INGENIWEB (TM) - SAS 50000 Euros - RC B 438 725 632
Bureaux de la Colline
1 rue Royal
92210 Saint Cloud - France
Phone : 01 78 15 24 00 / Fax : 01 46 02 44 04
web : www.ingeniweb.com - une société du groupe Alter Way
More information about the Product-Developers
mailing list