source: products/quintagroup.dropdownmenu/trunk/quintagroup/dropdownmenu/setuphandlers.py @ 3151

Last change on this file since 3151 was 3151, checked in by vmaksymiv, 13 years ago

pep8 fixes

  • Property svn:eol-style set to native
File size: 2.0 KB
Line 
1import sys
2import logging
3from zope.component import queryUtility
4from zope.component import getSiteManager
5from zope.component import getGlobalSiteManager
6from plone.registry.interfaces import IRegistry
7from plone.browserlayer.utils import unregister_layer
8from plone.browserlayer.interfaces import ILocalBrowserLayerType
9
10from Acquisition import aq_parent
11from Products.CMFCore.utils import getToolByName
12
13from quintagroup.dropdownmenu.interfaces import IDropDownMenuSettings
14from quintagroup.dropdownmenu import PROJECT_NAME, logger
15
16
17def removeConfiglet(site):
18    """ Remove configlet.
19    """
20    conf_id = "dropdownmenu"
21    controlpanel_tool = getToolByName(site, 'portal_controlpanel')
22    if controlpanel_tool:
23        controlpanel_tool.unregisterConfiglet(conf_id)
24        logger.log(logging.INFO, "Unregistered \"%s\" configlet." % conf_id)
25
26
27def cleanupRegistry(site):
28    registry = queryUtility(IRegistry)
29    iprefix = IDropDownMenuSettings.__identifier__ + '.'
30    delrecs = [r for r in registry.records.keys() if r.startswith(iprefix)]
31    map(registry.records.__delitem__, delrecs)
32    logger.log(logging.INFO,
33               "Removed %s items from plone.app.registry" % delrecs)
34
35
36def fixQIUninstallDependencies(site):
37    """Uninstallation procedure of Quickinstaller tool clean-up settings,
38       made by dependent products. Fix this issue.
39    """
40    qi = getToolByName(site, 'portal_quickinstaller')
41    qiprod = getattr(qi, PROJECT_NAME, None)
42    if qiprod:
43        utilities = getattr(qiprod, 'utilities', [])
44        todel = filter(lambda k: not sum(map(
45                    lambda i: PROJECT_NAME in i, k)), utilities)
46        for u in todel:
47            uidx = utilities.index(u)
48            del utilities[uidx]
49
50
51def uninstall(context):
52    """ Do customized uninstallation.
53    """
54    if context.readDataFile('quintagroup_dropdownmenu_uninstall.txt') is None:
55        return
56
57    site = context.getSite()
58    fixQIUninstallDependencies(site)
59    removeConfiglet(site)
60    cleanupRegistry(site)
Note: See TracBrowser for help on using the repository browser.