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

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

#159: Added upgrade steps from earlier version package to 3.0.0.

File size: 1.7 KB
Line 
1import logging
2from Products.CMFCore.utils import getToolByName
3
4logger = logging.getLogger('quintagroup.seoptimizer')
5
6def removeSkin(site, layer):
7    """ Remove layers.
8    """
9    skins_tool = getToolByName(site, 'portal_skins')
10    for skinName in skins_tool.getSkinSelections():
11        skin_paths = skins_tool.getSkinPath(skinName).split(',') 
12        paths = [l.strip() for l in skin_paths if not (l == layer or l.startswith(layer+'/'))]
13        logger.log(logging.INFO, "Removed layers from %s skin." % skinName)
14        skins_tool.addSkinSelection(skinName, ','.join(paths))
15
16def removeActions(site):
17    """ Remove actions.
18    """
19    types_tool = getToolByName(site, 'portal_types')
20    for ptype in types_tool.objectValues():
21        idxs = [idx_act[0] for idx_act in enumerate(ptype.listActions()) if idx_act[1].id == 'seo_properties']
22        if idxs:
23            ptype.deleteActions(idxs)
24            logger.log(logging.INFO, "Deleted \"SEO Properties\" action for %s type." % ptype.id)
25
26def removeConfiglet(site, conf_id):
27    """ Remove configlet.
28    """
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
34def importVarious(context):
35    """ Do customized installation.
36    """
37    if context.readDataFile('seo_install.txt') is None:
38        return
39
40def uninstall(context):
41    """ Do customized uninstallation.
42    """
43    if context.readDataFile('seo_uninstall.txt') is None:
44        return
45    site = context.getSite()
46    removeSkin(site, 'quintagroup.seoptimizer' )
47    removeActions(site)
48    removeConfiglet(site, 'quintagroup.seoptimizer')
Note: See TracBrowser for help on using the repository browser.