Last modified 4 years ago
To avoid removing local utilities on a reinstall.
http://blog.m3r.nl/personal/how-to-stop-quickinstaller-from-removing-content
In Extensions/Install?.py
import logging from Products.CMFCore.utils import getToolByName logger = logging.getLogger('icat.metadata.Install') from icat.metadata.interfaces import IICATSettings from icat.metadata.icatconnection import icatSettings from zope.component import getSiteManager def beforeUninstall(portal, reinstall=False, product=None, cascade=None): """ Make sure that local utilities won't get removed if reinstalling """ logger.info("calling beforeUninstall") if reinstall: cascade.remove('utilities') return None, cascade def install(portal, reinstall=False): logger.info("calling install") # register local utility (not using GS b/c then it gets clobbered on reinstall) if not reinstall: sm = getSiteManager() sm.registerUtility(icatSettings(), provided=IICATSettings) setup_tool = getToolByName(portal, 'portal_setup') setup_tool = getToolByName(portal, 'portal_setup') if hasattr(setup_tool, 'runAllImportStepsFromProfile'): setup_tool.runAllImportStepsFromProfile('profile-icat.metadata:default', purge_old=False) else: old_context = setup_tool.getImportContextID() setup_tool.setImportContext('profile-icat.metadata:default') setup_tool.runAllImportSteps() setup_tool.setImportContext(old_context)
