[Product-Developers] Removing a removed "required tool" from genericsetup.

Maurits van Rees m.van.rees at zestsoftware.nl
Wed Sep 7 12:31:47 UTC 2011

Op 05-09-11 19:35, Gilles Lenfant schreef:
> Hi,
> It seems GenericSetup keeps a footprint of tools that have been once installed in a Plone site. Unfortunately, someone before me installed a 'foo_tool' I can't find what component's GS profile installed it.
> Even removing the footprint of that f...g ghost component does not work/
> del site.portal_setup._toolset_registry._required['foo_too']

The problem is probably that '_required' is a normal dictionary instead 
of a PersistenDict, so the ZODB transaction machinery does not realize 
that the portal_setup object has changed.  You need to add this line:

site.portal_setup._p_changed = True

Code for a similar use case is in Products/LinguaPlone/migrations.py.

If you are doing this in a debug prompt you may need to explicitly 
commit the transaction:

import transaction; transaction.commit()

Maurits van Rees
Web App Programmer at Zest Software: http://zestsoftware.nl
Personal website: http://maurits.vanrees.org/

More information about the Product-Developers mailing list