Changeset 67

Show
Ignore:
Timestamp:
12/01/05 10:04:15
Author:
crchemist
Message:

Added compatibility with Plone-2.1

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • qSEOptimizer/trunk/Extensions/Install.py

    r66 r67  
    1111qSEO_FOLDER  = [] 
    1212qSEO_TYPES   = qSEO_CONTENT + qSEO_FOLDER 
     13try: 
     14    True 
     15except: 
     16    True = 1 
     17    False = 0 
    1318 
    14 def setupSkin(self, out, skinFolder): 
     19def setupSkin(self, out, layers): 
     20    """Setup skins""" 
    1521    skinstool=getToolByName(self, 'portal_skins') 
    16  
    1722    addDirectoryViews(skinstool, 'skins', qSEO_globals) 
    1823 
    1924    for skin in skinstool.getSkinSelections(): 
     25        modified = False 
    2026        path = skinstool.getSkinPath(skin) 
    2127        path = map( string.strip, string.split( path,',' ) ) 
    22  
    23         if not skinFolder in path: 
    24             try: 
    25                 path.insert( path.index( 'custom')+1, skinFolder ) 
    26             except ValueError: 
    27                 path.append(skinFolder) 
     28        for layer in layers: 
     29            if not layer in path: 
     30                try: 
     31                    path.insert(path.index('custom')+1, layer ) 
     32                except ValueError: 
     33                    path.append(layer) 
     34                modified = True 
     35                out.write('  Layer %s sucessfully installed into skin %s.\n' % (layer,skin)) 
     36            else: 
     37                out.write('  Layer %s was already installed into skin %s.\n' % (layer,skin)) 
     38        if modified: 
    2839            path = string.join( path, ', ' ) 
    2940            skinstool.addSkinSelection( skin, path ) 
    30             out.write('  Subskin sucessfully installed into skin %s.\n' % skin) 
    31         else: 
    32             out.write('  Subskin was already installed into skin %s.\n' % skin) 
    3341 
    34 def removeSkin(self, skins = []): 
    35     if skins: 
    36         skinstool = getToolByName(self, 'portal_skins') 
    37         for skinName in skinstool.getSkinSelections(): 
    38             path = skinstool.getSkinPath(skinName) 
    39             path = [i.strip() for i in  path.split(',')] 
    40             for s in skins: 
    41                 if s in path: 
    42                     path.remove(s) 
    43                 s += '/' 
    44                 for layer in path: 
    45                     if layer.startswith(s): 
    46                         path.remove(layer) 
    47             path = ','.join(path) 
    48             skinstool.addSkinSelection(skinName, path) 
    49  
     42def removeSkin(self, layer): 
     43    """Remove layers""" 
     44    skinstool = getToolByName(self, 'portal_skins') 
     45    for skinName in skinstool.getSkinSelections(): 
     46        original_path = skinstool.getSkinPath(skinName) 
     47        original_path = [l.strip() for l in original_path.split(',')] 
     48        new_path= [] 
     49        for l in original_path: 
     50            if (l == layer) or (l.startswith(layer+'/')): 
     51                continue 
     52            new_path.append(l) 
     53        skinstool.addSkinSelection(skinName, ','.join(new_path)) 
     54         
    5055def setupActions(self, out): 
    5156    # And now update the relevant portal_type actions 
     
    6671                               , visible=1 
    6772                               ) 
    68  
    69  
     73def removeActions(self): 
     74    # And now update the relevant portal_type actions 
     75    tool = getToolByName(self, 'portal_types') 
     76    for ptype in tool.objectValues(): 
     77        if ptype.getId() in qSEO_TYPES: 
     78            #delet the action for viewing versioning 
     79            action = ptype.getActionById( 'seo_properties', default=None ) 
     80            if action != None: 
     81                acts = list(ptype.listActions()) 
     82                ptype.deleteActions([acts.index(a) for a in acts if a.getId()=='seo_properties']) 
    7083def install(self): 
    7184    out = StringIO() 
    72  
    73     out.write('Call setupSkin... \n') 
    74  
     85    Layers =[] 
    7586    mtool = getToolByName(self, 'portal_migration') 
    7687    plone_version = mtool.getFileSystemVersion() 
    7788    product_path = package_home(qSEO_globals) 
     89    versioned_skin = path_join(product_path, 'skins','qSEOptimizer', plone_version) 
    7890 
    79     skin = 'qSEOptimizer' 
    80     versioned_skin = path_join(product_path, 'skins', skin, plone_version) 
    81     out.write('  Searching for %s... ' % versioned_skin)  
    82  
     91    Layers.append('qSEOptimizer') 
     92    out.write('  Searching for %s... ' % versioned_skin) 
    8393    if path_exists(versioned_skin): 
    84         out.write('found.\n')  
    85         skin = 'qSEOptimizer/%s' % plone_version 
     94        out.write('found.\n') 
     95        Layers.append('qSEOptimizer/%s' % plone_version) 
    8696    else: 
    87         out.write("""not found.\n 
    88     Limited functionality mode. 
    89     Upgrade qSEOptimizer product or report to support@quintagroup.com if uprade not available.\n\n""")  
    90     setupSkin(self, out, skin) 
     97        out.write("""not found.\nLimited functionality mode. Upgrade qSEOptimizer product or report to support@quintagroup.com if uprade not available.\n\n""")  
     98    out.write('Call setupSkin... \n') 
     99    setupSkin(self, out, Layers) 
    91100 
    92101    out.write('Call setupActions... \n') 
     
    96105 
    97106def uninstall(self): 
    98     removeSkin(self, ('qSEOptimizer',)) 
     107    """ Uninstall Products """ 
     108 
     109    removeSkin(self, 'qSEOptimizer') 
     110 
     111    removeActions(self) 
     112 
    99113    return 'qSEOptimizer uninstalled successfully.'