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

Last change on this file since 2132 was 2124, checked in by mylan, 14 years ago

#146: Fix browserlayer operations for Plone < 3.1.1

File size: 1.8 KB
Line 
1import logging
2
3from zope.component import getSiteManager
4
5from config import SUPPORT_BLAYER
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    if not SUPPORT_BLAYER:
35        return
36
37    from plone.browserlayer.utils import unregister_layer
38    from plone.browserlayer.interfaces import ILocalBrowserLayerType
39
40    name="qSEOptimizer"
41    site = getSiteManager(site)
42    registeredLayers = [r.name for r in site.registeredUtilities()
43                        if r.provided == ILocalBrowserLayerType]
44    if name in registeredLayers:
45        unregister_layer(name, site_manager=site)
46        logger.log(logging.INFO, "Unregistered \"%s\" browser layer." % name)
47
48def uninstall(context):
49    """ Do customized uninstallation.
50    """
51    if context.readDataFile('seo_uninstall.txt') is None:
52        return
53    site = context.getSite()
54    removeActions(site)
55    removeConfiglet(site)
56    removeBrowserLayer(site)
Note: See TracBrowser for help on using the repository browser.