Changeset 1850 in products


Ignore:
Timestamp:
Mar 4, 2010 9:02:17 PM (14 years ago)
Author:
liebster
Message:

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

Location:
quintagroup.seoptimizer/branches/refactoring2.3.0/quintagroup/seoptimizer
Files:
10 added
1 deleted
4 edited

Legend:

Unmodified
Added
Removed
  • quintagroup.seoptimizer/branches/refactoring2.3.0/quintagroup/seoptimizer/Extensions/Install.py

    r1740 r1850  
     1import logging 
    12from Products.CMFCore.utils import getToolByName 
     3from Products.GenericSetup.upgrade import _upgrade_registry 
    24 
    35from quintagroup.seoptimizer.config import PROJECT_NAME 
    46 
     7logger = logging.getLogger('quintagroup.seoptimizer') 
     8 
    59# our GenericSetup profile names 
    610INSTALL = 'profile-%s:default' % PROJECT_NAME 
    7 REINSTALL = 'profile-%s:reinstall' % PROJECT_NAME 
    811UNINSTALL = 'profile-%s:uninstall' % PROJECT_NAME 
    912 
     
    1619    setup_tool = getToolByName(portal, 'portal_setup') 
    1720    if reinstall: 
    18         setup_tool.runAllImportStepsFromProfile(REINSTALL) 
     21        step = None 
     22        profile_id = 'quintagroup.seoptimizer:default' 
     23        steps_to_run = [s['id'] for s in setup_tool.listUpgrades(profile_id, show_old=False)] 
     24        for step_id in steps_to_run: 
     25            step = _upgrade_registry.getUpgradeStep(profile_id, step_id) 
     26            step.doStep(setup_tool) 
     27            msg = "Ran upgrade step %s for profile %s" % (step.title, profile_id) 
     28            logger.log(logging.INFO, msg) 
     29        # We update the profile version to the last one we have reached 
     30        # with running an upgrade step. 
     31        if step and step.dest is not None and step.checker is None: 
     32           setup_tool.setLastVersionForProfile(profile_id, step.dest) 
    1933        return "Ran all reinstall steps." 
    2034    else: 
  • quintagroup.seoptimizer/branches/refactoring2.3.0/quintagroup/seoptimizer/profiles.zcml

    r1777 r1850  
    1313 
    1414  <genericsetup:registerProfile 
    15       name="reinstall" 
    16       title="quintagroup.seoptimizer reinstall" 
    17       directory="profiles/reinstall" 
    18       description="Reinstall quintagroup.seoptimizer" 
    19       provides="Products.GenericSetup.interfaces.EXTENSION" 
    20       /> 
    21  
    22   <genericsetup:registerProfile 
    2315      name="uninstall" 
    2416      title="quintagroup.seoptimizer uninstall" 
     
    2820      /> 
    2921 
     22  <genericsetup:registerProfile 
     23      name="upgrade_2_to_3" 
     24      title="Upgrade quintagroup.seoptimizer 2.x.x to 3.0.0" 
     25      directory="profiles/upgrade_2_to_3" 
     26      description="Upgrades the quintagroup.seoptimizer from version 2.x.x to 3.0.0." 
     27      for="Products.CMFPlone.interfaces.IMigratingPloneSiteRoot" 
     28      provides="Products.GenericSetup.interfaces.EXTENSION" 
     29      /> 
     30 
     31  <genericsetup:upgradeStep 
     32      title="Upgrade quintagroup.seoptimizer" 
     33      description="Upgrade quintagroup.seoptimizer 2.x.x to 3.0.0" 
     34      source="*" 
     35      destination="3.0.0" 
     36      handler=".upgrades.upgrade_2_to_3" 
     37      sortkey="1" 
     38      profile="quintagroup.seoptimizer:default" /> 
     39 
    3040</configure> 
  • quintagroup.seoptimizer/branches/refactoring2.3.0/quintagroup/seoptimizer/profiles/default/metadata.xml

    r1663 r1850  
    11<?xml version="1.0"?> 
    22<metadata> 
    3   <version>2.3.0</version> 
     3  <version>3.0.0</version> 
    44</metadata> 
  • quintagroup.seoptimizer/branches/refactoring2.3.0/quintagroup/seoptimizer/setuphandlers.py

    r1832 r1850  
    11import logging 
    22from Products.CMFCore.utils import getToolByName 
    3 from Products.CMFCore.Expression import Expression 
    43 
    54logger = logging.getLogger('quintagroup.seoptimizer') 
    6 FIX_PTYPES_DOMAIN = ['Document', 'File', 'News Item'] 
    75 
    86def removeSkin(site, layer): 
     
    3432        logger.log(logging.INFO, "Unregistered \"%s\" configlet." % conf_id) 
    3533 
    36 def changeDomain(site): 
    37     """ Fixes old versions bug: Change of content type's domain to 'plone'. 
    38     """ 
    39     types_tool = getToolByName(site, 'portal_types') 
    40     for ptype in [ptypes for ptypes in types_tool.objectValues() if ptypes.id in FIX_PTYPES_DOMAIN]: 
    41         if ptype.i18n_domain == 'quintagroup.seoptimizer': 
    42             ptype.i18n_domain = 'plone' 
    43             logger.log(logging.INFO, "I18n Domain of the type \'%s\' changed to \'plone\'." % ptype.id) 
    44  
    45 def changeMetatagsOrderList(site): 
    46     """ Change format metatags order list from "metaname accessor" to "metaname". 
    47     """ 
    48     types_tool = getToolByName(site, 'portal_types') 
    49     pprops_tool = getToolByName(site, 'portal_properties') 
    50     seoprops_tool = getToolByName(pprops_tool, 'seo_properties') 
    51     mto = seoprops_tool.getProperty('metatags_order', []) 
    52     mto_new = [line.split(' ')[0].strip() for line in mto] 
    53     if not list(mto) == mto_new: 
    54         logger.log(logging.INFO, "Changed format metatags order list in configlet from \"metaname accessor\" to \"metaname\".") 
    55     seoprops_tool.manage_changeProperties(metatags_order=mto_new) 
    56  
    57 def migrationActions(site): 
    58     """ Migration actions from portal_types action to portal_actions. 
    59     """ 
    60     types_tool = getToolByName(site, 'portal_types') 
    61     pprops_tool = getToolByName(site, 'portal_properties') 
    62     seoprops_tool = getToolByName(pprops_tool, 'seo_properties') 
    63     ctws = list(seoprops_tool.getProperty('content_types_with_seoproperties', [])) 
    64  
    65     for ptype in types_tool.objectValues(): 
    66         idxs = [idx_act[0] for idx_act in enumerate(ptype.listActions()) if idx_act[1].id == 'seo_properties'] 
    67         if idxs: 
    68             if ptype.id not in ctws: 
    69                 ctws.append(ptype.id) 
    70             ptype.deleteActions(idxs) 
    71             logger.log(logging.INFO, "Moved \"SEO Properties\" action from %s type in portal actions." % ptype.id) 
    72     seoprops_tool.manage_changeProperties(content_types_with_seoproperties=ctws) 
    73  
    7434def importVarious(context): 
    7535    """ Do customized installation. 
     
    7737    if context.readDataFile('seo_install.txt') is None: 
    7838        return 
    79  
    80 def reinstall(context): 
    81     """ Do customized reinstallation. 
    82     """ 
    83     if context.readDataFile('seo_reinstall.txt') is None: 
    84         return 
    85     site = context.getSite() 
    86     migrationActions(site) 
    87     changeDomain(site) 
    88     changeMetatagsOrderList(site) 
    8939 
    9040def uninstall(context): 
Note: See TracChangeset for help on using the changeset viewer.