source: products/quintagroup.seoptimizer/branches/refactoring2.3.0/quintagroup/seoptimizer/setuphandlers.py @ 1958

Last change on this file since 1958 was 1958, checked in by liebster, 14 years ago

Clean-up code http://codereview.corp.quintagroup.com/40241/show

File size: 1.7 KB
Line 
1import logging
2
3from zope.component import getSiteManager
4from plone.browserlayer.utils import unregister_layer
5from plone.browserlayer.interfaces import ILocalBrowserLayerType
6
7from Products.CMFCore.utils import getToolByName
8
9logger = logging.getLogger('quintagroup.seoptimizer')
10
11def removeActions(site):
12    """ Remove actions.
13    """
14    types_tool = getToolByName(site, 'portal_types')
15    for ptype in types_tool.objectValues():
16        idxs = [idx_act[0] for idx_act in enumerate(ptype.listActions()) \
17                           if idx_act[1].id == 'seo_properties']
18        if idxs:
19            ptype.deleteActions(idxs)
20            logger.log(logging.INFO, "Deleted \"SEO Properties\" action for %s type." % ptype.id)
21
22def removeConfiglet(site):
23    """ Remove configlet.
24    """
25    conf_id = 'quintagroup.seoptimizer'
26    controlpanel_tool = getToolByName(site, 'portal_controlpanel')
27    if controlpanel_tool:
28        controlpanel_tool.unregisterConfiglet(conf_id)
29        logger.log(logging.INFO, "Unregistered \"%s\" configlet." % conf_id)
30
31def removeBrowserLayer(site):
32    """ Remove browser layer.
33    """
34    name="qSEOptimizer"
35    site = getSiteManager(site)
36    registeredLayers = [r.name for r in site.registeredUtilities()
37                        if r.provided == ILocalBrowserLayerType]
38    if name in registeredLayers:
39        unregister_layer(name, site_manager=site)
40        logger.log(logging.INFO, "Unregistered \"%s\" browser layer." % name)
41
42def uninstall(context):
43    """ Do customized uninstallation.
44    """
45    if context.readDataFile('seo_uninstall.txt') is None:
46        return
47    site = context.getSite()
48    removeActions(site)
49    removeConfiglet(site)
50    removeBrowserLayer(site)
Note: See TracBrowser for help on using the repository browser.