Ignore:
Timestamp:
Mar 17, 2010 6:40:45 PM (14 years ago)
Author:
liebster
Message:

Add seo_canonical property migration

File:
1 edited

Legend:

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

    r1925 r1930  
    22from zope.component import queryMultiAdapter 
    33from Products.CMFCore.utils import getToolByName 
     4 
     5from quintagroup.canonicalpath.interfaces  import ICanonicalLink 
     6from quintagroup.canonicalpath.adapters import PROPERTY_LINK 
    47 
    58logger = logging.getLogger('quintagroup.seoptimizer') 
     
    8386        skins_tool.addSkinSelection(skinName, ','.join(paths)) 
    8487 
     88def migrateCanonical(plone_tools): 
     89    """ Rename qSEO_canonical property into PROPERTY_LINK 
     90        for all portal objects, which use SEO 
     91    """ 
     92    types = plone_tools.types() 
     93    portal = plone_tools.url().getPortalObject() 
     94    allCTTypes = types.listContentTypes() 
     95    obj_metatypes =  [m.content_meta_type for m in types.objectValues() \ 
     96                      if m.getId() in allCTTypes] 
     97    portal.ZopeFindAndApply( 
     98                            portal, 
     99                            obj_metatypes=','.join(obj_metatypes), 
     100                            apply_func=renameProperty 
     101                            ) 
     102 
     103def renameProperty(obj, path): 
     104    """ Rename qSEO_canonical property into PROPERTY_LINK 
     105        for obj, which use SEO 
     106    """ 
     107    if obj.hasProperty('qSEO_canonical'): 
     108        value = obj.getProperty('qSEO_canonical') 
     109 
     110        level, msg = logging.INFO, "For %(url)s object 'qSEO_canonical' "\ 
     111                     "property renamed to '%(name)s'." 
     112        try: 
     113            ICanonicalLink(obj).canonical_link = value 
     114        except e: 
     115            level, msg = logging.ERROR, "%s on renaming 'qSEO_canonical' " \ 
     116                         "property for %%(url)s object" % str(e) 
     117 
     118        logger.log(level, msg % {'url':obj.absolute_url(), 'name':PROPERTY_LINK} ) 
     119        obj.manage_delProperties(['qSEO_canonical']) 
     120 
    85121def upgrade_2_to_3(setuptool): 
    86122    """ Upgrade quintagroup.seoptimizer from version 2.x.x to 3.0.0. 
     
    93129    removeNonUseSeoProperties(plone_tools) 
    94130    removeSkin(plone_tools) 
     131    migrateCanonical(plone_tools) 
Note: See TracChangeset for help on using the changeset viewer.