source: products/qPloneCaptchas/tags/0.8/Extensions/Install.py @ 1498

Last change on this file since 1498 was 1, checked in by myroslav, 19 years ago

Building directory structure

  • Property svn:eol-style set to native
File size: 2.5 KB
Line 
1from Products.qPloneCaptchas.config import *
2from Products.CMFCore.utils import getToolByName
3from StringIO import StringIO
4from Products.CMFCore.DirectoryView import addDirectoryViews
5import string
6from App.Common import package_home
7from os.path import exists as path_exists, join as path_join
8
9
10def install(self):
11    out=StringIO()
12    Layers = LAYERS
13    mtool = getToolByName(self, 'portal_migration')
14    plone_version = mtool.getFileSystemVersion()
15    if plone_version.startswith('2.1'):
16        plone_version = '2.1.2'
17    elif plone_version.startswith('2.0'):
18        plone_version = '2.0.5'
19    else:
20        raise Exception("Error - Unsupported version. Suported versions: Plone 2.0.5-2.1.2")
21    DiscussionLayer = LAYER_DISCUSSION
22    try:
23        import Products.qPloneComments.config
24        DiscussionLayer = LAYER_QCOMMENTS
25    except:
26        pass
27    product_path = package_home(GLOBALS)
28    formmailer_layer = LAYER_FORMMAILER+'/'+plone_version
29    Layers.append(formmailer_layer)
30    discussion_layer = DiscussionLayer+'/'+plone_version
31    Layers.append(discussion_layer)
32    out.write('Call setupSkin... \n')
33    setupSkin(self, out, Layers)
34
35def setupSkin(self, out, layers):
36    """Setup skins"""
37    skinstool=getToolByName(self, 'portal_skins')
38    addDirectoryViews(skinstool, 'skins', GLOBALS)
39
40    for skin in skinstool.getSkinSelections():
41        modified = False
42        path = skinstool.getSkinPath(skin)
43        path = map( string.strip, string.split( path,',' ) )
44        for layer in layers:
45            if not layer in path:
46                try:
47                    path.insert(path.index('custom')+1, layer )
48                except ValueError:
49                    path.append(layer)
50                modified = True
51                out.write('  Layer %s sucessfully installed into skin %s.\n' % (layer,skin))
52            else:
53                out.write('  Layer %s was already installed into skin %s.\n' % (layer,skin))
54        if modified:
55            path = string.join( path, ', ' )
56            skinstool.addSkinSelection( skin, path )
57
58def uninstall(self):
59    skinstool = getToolByName(self, 'portal_skins')
60    # Remove skin
61    for skinName in skinstool.getSkinSelections():
62        path = skinstool.getSkinPath(skinName)
63        path = [i.strip() for i in  path.split(',')]
64        for skin in ALL_LAYERS:
65            for l in path:
66                if (l == skin) or (l.startswith(skin+'/')):
67                    path.remove(l)
68        skinstool.addSkinSelection(skinName, ','.join(path))
Note: See TracBrowser for help on using the repository browser.