Changeset 1133

Show
Ignore:
Timestamp:
06/27/08 10:20:13
Author:
deo
Message:

Moved the skins registration to the GS profile.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • qPloneComments/branches/plone-3.0/Extensions/Install.py

    r1125 r1133  
    22from Products.CMFCore.utils import getToolByName 
    33from Products.CMFCore.DirectoryView import addDirectoryViews 
    4 try: 
    5     from Products.CMFCore.permissions import ManagePortal, ReplyToItem 
    6 except ImportError: 
    7     from Products.CMFCore.CMFCorePermissions import ManagePortal,ReplyToItem 
    8 from App.Common import package_home 
    9 from os.path import exists as path_exists, join as path_join 
     4from Products.CMFCore.permissions import ManagePortal, ReplyToItem 
    105 
    116from plone.browserlayer.utils import register_layer, unregister_layer 
     
    138from Products.qPloneComments.interfaces import IPloneCommentsLayer 
    149 
    15 import string 
     10def install(self): 
     11    out = StringIO() 
    1612 
    17 def setupSkin(self, out, layers): 
    18     """Setup skins""" 
    19     skinstool=getToolByName(self, 'portal_skins') 
    20     addDirectoryViews(skinstool, 'skins', GLOBALS) 
     13    # Fire GenericSetup imports 
     14    portal_setup = getToolByName(self, 'portal_setup') 
     15    portal_setup.runAllImportStepsFromProfile('profile-Products.qPloneComments:default') 
    2116 
    22     for skin in skinstool.getSkinSelections(): 
    23         modified = False 
    24         path = skinstool.getSkinPath(skin) 
    25         path = map( string.strip, string.split( path,',' ) ) 
    26         for layer in layers: 
    27             if not layer in path: 
    28                 try: 
    29                     path.insert(path.index('custom')+1, layer ) 
    30                 except ValueError: 
    31                     path.append(layer) 
    32                 modified = True 
    33                 out.write('  Layer %s sucessfully installed into skin %s.\n' % (layer,skin)) 
    34             else: 
    35                 out.write('  Layer %s was already installed into skin %s.\n' % (layer,skin)) 
    36         if modified: 
    37             path = string.join( path, ', ' ) 
    38             skinstool.addSkinSelection( skin, path ) 
    39  
    40  
    41 def install(self): 
    42     out=StringIO() 
    43  
    44     Layers = [] 
    45     mtool = getToolByName(self, 'portal_migration') 
    46     plone_version = mtool.getFileSystemVersion() 
    47     if plone_version.startswith('2.1'): 
    48         plone_version = '2.1' 
    49     elif plone_version.startswith('2.0'): 
    50         plone_version = '2.0.5' 
    51     elif plone_version.startswith('2.5') or plone_version.startswith('3'): 
    52         plone_version = '2.5' 
    53     else: 
    54         raise Exception("Error - Unsupported version. Suported versions: Plone 2.0.5-3.0") 
    55  
    56     product_path = package_home(GLOBALS) 
    57     versioned_skin = path_join(product_path, 'skins', PROJECTNAME, plone_version) 
    58  
    59     Layers.append(SKIN_NAME) 
    60     Layers.append('%s/%s' % (SKIN_NAME, plone_version) ) 
    61     out.write('Call setupSkin... \n') 
    62     setupSkin(self, out, Layers) 
    63      
    64     # register our browser layer 
     17    # Register our browser layer 
    6518    register_layer(IPloneCommentsLayer, name='qPloneComments') 
    6619 
    67     # add Property sheet to portal_properies 
     20    # Add Property sheet to portal_properies 
    6821    pp = getToolByName(self, 'portal_properties') 
    6922    if not 'qPloneComments' in pp.objectIds(): 
    70         pp.addPropertySheet(id='qPloneComments', title= '%s Properties' % 'qPloneComments') 
    71         out.write("Adding %s property sheet to portal_properies\n" % 'qPloneComments'
     23        pp.addPropertySheet(id='qPloneComments', title='qPloneComments Properties') 
     24        out.write("Adding %s property sheet to portal_properies\n" % 'qPloneComments'
    7225    props_sheet = pp['qPloneComments'] 
    7326    updateProperties(props_sheet, out, PROPERTIES) 
     
    8437                                        appId=PROJECTNAME, permission=ManagePortal, imageUrl='group.gif') 
    8538 
    86     # Add DiscussionManager role to Portal 
    87     if plone_version == '2.5': 
    88         uf = getToolByName(self, 'acl_users') 
    89         rmanager = uf.portal_role_manager 
    90         existing = rmanager.listRoleIds() 
    91         if not 'DiscussionManager' in existing: 
    92             rmanager.addRole('DiscussionManager') 
    93             out.write("Added DiscussionManager role top portal.\n") 
    94     else: 
    95         roles = list(self.__ac_roles__) 
    96         if not 'DiscussionManager' in roles: 
    97             roles.append('DiscussionManager') 
    98             roles = tuple(roles) 
    99             self.__ac_roles__ = roles 
    100             out.write("Added DiscussionManager role top portal.\n") 
     39    uf = getToolByName(self, 'acl_users') 
     40    rmanager = uf.portal_role_manager 
     41    existing = rmanager.listRoleIds() 
     42    if not 'DiscussionManager' in existing: 
     43        rmanager.addRole('DiscussionManager') 
     44        out.write("Added DiscussionManager role top portal.\n") 
    10145 
    10246    self.manage_permission('Moderate Discussion', ['DiscussionManager', 'Manager']) 
    103     # Add 'DiscussionManagers' group 
     47    # Add 'DiscussionManagers' group 
    10448    gtool = getToolByName(self, 'portal_groups') 
    10549    existing = gtool.listGroupIds() 
     
    11054    # Remove workflow-chain for Discussion Item 
    11155    wf_tool = getToolByName(self, 'portal_workflow') 
    112     wf_tool.setChainForPortalTypes( ('Discussion Item',), [])  
     56    wf_tool.setChainForPortalTypes(('Discussion Item',), []) 
    11357    out.write("Removed workflow chain for Discussion Item type.\n") 
    11458 
    11559    out.write('Installation successfully completed.\n') 
    11660    return out.getvalue() 
    117  
    11861 
    11962def updateProperties(pp_ps, out, *args): 
     
    12265            if not pp_ps.hasProperty(prop_id): 
    12366                pp_ps.manage_addProperty(prop_id, prop_value, prop_type) 
    124                 out.write("Adding %s property to %s property sheet\n" % (prop_id, 'qPloneComments')
     67                out.write("Adding %s property to %s property sheet\n" % (prop_id, 'qPloneComments')
    12568 
    12669def uninstall(self): 
     
    13376        for p in old_path: 
    13477            if not p.startswith(SKIN_NAME): 
    135                path.append(p) 
     78                path.append(p) 
    13679        path = ','.join(path) 
    13780        skinstool.addSkinSelection(skinName, path) 
    138              
     81 
    13982    # remove browser layer 
    14083    try: 
     
    14285    except KeyError: 
    14386        pass 
    144              
     87 
    14588    # Remove configlet 
    14689    controlpanel_tool = getToolByName(self, 'portal_controlpanel') 
    14790    controlpanel_tool.unregisterConfiglet(CONFIGLET_ID) 
     91 
    14892    # Remove Product's property sheet from portal_properties 
    14993    pp = getToolByName(self, 'portal_properties') 
  • qPloneComments/branches/plone-3.0/configure.zcml

    r1018 r1133  
    1 <configure xmlns="http://namespaces.zope.org/zope" 
    2            xmlns:browser="http://namespaces.zope.org/browser" 
    3            xmlns:five="http://namespaces.zope.org/five"> 
     1<configure 
     2    xmlns="http://namespaces.zope.org/zope" 
     3    xmlns:browser="http://namespaces.zope.org/browser" 
     4    xmlns:gs="http://namespaces.zope.org/genericsetup" 
     5    xmlns:five="http://namespaces.zope.org/five"> 
     6 
     7  <gs:registerProfile 
     8      name="default" 
     9      title="qPloneComments profile" 
     10      directory="profiles/default" 
     11      provides="Products.GenericSetup.interfaces.EXTENSION" 
     12      description="" 
     13      for="Products.CMFPlone.interfaces.IPloneSiteRoot" 
     14      /> 
    415 
    516</configure>