source: products/quintagroup.seoptimizer/trunk/quintagroup/seoptimizer/setuphandlers.py @ 3223

Last change on this file since 3223 was 3134, checked in by zidane, 13 years ago

fixes pep8

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
11
12def removeActions(site):
13    """ Remove actions.
14    """
15    types_tool = getToolByName(site, 'portal_types')
16    for ptype in types_tool.objectValues():
17        idxs = [idx_act[0] for idx_act in enumerate(ptype.listActions()) \
18                           if idx_act[1].id == 'seo_properties']
19        if idxs:
20            ptype.deleteActions(idxs)
21            msg_delete = "Deleted \"SEO Properties\" action for %s type."
22            logger.log(logging.INFO, msg_delete % ptype.id)
23
24
25def removeConfiglet(site):
26    """ Remove configlet.
27    """
28    conf_id = 'quintagroup.seoptimizer'
29    controlpanel_tool = getToolByName(site, 'portal_controlpanel')
30    if controlpanel_tool:
31        controlpanel_tool.unregisterConfiglet(conf_id)
32        logger.log(logging.INFO, "Unregistered \"%s\" configlet." % conf_id)
33
34
35def removeBrowserLayer(site):
36    """ Remove browser layer.
37    """
38    if not SUPPORT_BLAYER:
39        return
40
41    from plone.browserlayer.utils import unregister_layer
42    from plone.browserlayer.interfaces import ILocalBrowserLayerType
43
44    name = "qSEOptimizer"
45    site = getSiteManager(site)
46    registeredLayers = [r.name for r in site.registeredUtilities()
47                        if r.provided == ILocalBrowserLayerType]
48    if name in registeredLayers:
49        unregister_layer(name, site_manager=site)
50        logger.log(logging.INFO, "Unregistered \"%s\" browser layer." % name)
51
52
53def uninstall(context):
54    """ Do customized uninstallation.
55    """
56    if context.readDataFile('seo_uninstall.txt') is None:
57        return
58    site = context.getSite()
59    removeActions(site)
60    removeConfiglet(site)
61    removeBrowserLayer(site)
Note: See TracBrowser for help on using the repository browser.