Changeset 2830 in products
- Timestamp:
- Sep 17, 2010 10:13:14 AM (14 years ago)
- Location:
- quintagroup.plonegooglesitemaps/branches/migratioin_product/quintagroup/plonegooglesitemaps
- Files:
-
- 3 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
quintagroup.plonegooglesitemaps/branches/migratioin_product/quintagroup/plonegooglesitemaps/profiles.zcml
r2602 r2830 2 2 xmlns="http://namespaces.zope.org/zope" 3 3 xmlns:genericsetup="http://namespaces.zope.org/genericsetup" 4 xmlns:zcml="http://namespaces.zope.org/zcml" 4 5 i18n_domain="quintagroup.plonegooglesitemaps"> 5 6 … … 37 38 /> 38 39 40 <genericsetup:registerProfile 41 zcml:condition="installed Products.qPloneGoogleSitemaps" 42 name="migrage_qPGSM" 43 title="Migrate from qPloneGoogleSitemaps to quintagroup.plonegooglesitemaps" 44 directory="profiles/migrate_qPGSM" 45 description="" 46 provides="Products.GenericSetup.interfaces.EXTENSION" 47 /> 48 39 49 <genericsetup:upgradeStep 40 50 title="Upgrade Plone Google Sitemaps 1.0 to 1.1" -
quintagroup.plonegooglesitemaps/branches/migratioin_product/quintagroup/plonegooglesitemaps/setuphandlers.py
r2595 r2830 1 import sys 1 2 import logging 2 3 from zope.component import getSiteManager 3 4 from zope.component import getGlobalSiteManager 5 6 from Acquisition import aq_parent 4 7 from Products.CMFCore.utils import getToolByName 8 5 9 from quintagroup.plonegooglesitemaps.content.newsextender import NewsExtender 6 10 … … 39 43 logger.log(logging.INFO, "Unregistered \"%s\" configlet." % conf_id) 40 44 41 42 45 def uninstall(context): 43 46 """ Do customized uninstallation. … … 48 51 unregisterSchemaExtenderAdapters(site) 49 52 removeConfiglet(site) 53 54 55 def cleanup(site): 56 """Clean-up qPloneGoogleSitemaps artefacts.""" 57 old_product = "qPloneGoogleSitemaps" 58 # Get plone tools 59 pp = getToolByName(site, 'portal_properties') 60 skins = getToolByName(site, 'portal_skins') 61 controlpanel = getToolByName(site, 'portal_controlpanel') 62 # Remove old configlet from controlpanel 63 controlpanel.unregisterConfiglet(old_product) 64 logger.info("Unregistered '%s' configlet from "\ 65 "portal_controlpanel tool" % old_product) 66 # Remove qPloneGoogleSitemaps skin layer 67 for skinName in skins.getSkinSelections(): 68 skin_paths = skins.getSkinPath(skinName).split(',') 69 paths = [l.strip() for l in skin_paths if not l == old_product] 70 logger.info("Removed '%s' from '%s' skin." % (old_product, skinName)) 71 skins.addSkinSelection(skinName, ','.join(paths)) 72 73 def recriateSitemaps(smaps): 74 msg = "Recriation Sitemaps: " 75 if smaps: 76 logger.info(msg + "Process %s sitemaps." % ( 77 [sm.getPath() for sm in smaps])) 78 fields = ['id', 'sitemapType', 'portalTypes', 'states', 79 'blackout_list','reg_exp', 'urls', 'pingTransitions'] 80 for smb in smaps: 81 # get sitemap properties 82 sm_path = smb.getPath() 83 sm = smb.getObject() 84 container = aq_parent(sm) 85 data = {} 86 for fn in fields: 87 data[fn] = sm.getField(fn).getAccessor(sm)() 88 # Replace old GoogleSitemap by new one with 89 # previous properties 90 container.manage_delObjects(data['id']) 91 container.invokeFactory("Sitemap", id=data['id']) 92 new_sm = getattr(container, data['id']) 93 new_sm.update(**data) 94 new_sm.at_post_create_script() 95 logger.info("Successfully replaced '%s' Sitemap" % sm_path) 96 else: 97 logger.info(msg + "No sitemaps found") 98 99 def getOldGSitemaps(site): 100 catalog = getToolByName(site, 'portal_catalog') 101 smaps = catalog(portal_type="Sitemap") 102 old_smb = [smb for smb in smaps \ 103 if 'qPloneGoogleSitemaps' in str(smb.getObject().__class__)] 104 return old_smb 105 106 def migrate_qPGSM(context): 107 """ Clean-up qPloneGoogleSitemaps product artefacts and 108 recriate sitemaps from quintagroup.plonegooglesitemaps 109 package version 1.0. 110 """ 111 if context.readDataFile('gsm_migration.txt') is None: 112 return 113 114 site = context.getSite() 115 old_gsmaps = getOldGSitemaps(site) 116 if old_gsmaps: 117 cleanup(site) 118 recriateSitemaps(old_gsmaps) 119 logger.info("Successfully migrated old GoogleSitemaps.") 120 else: 121 logger.info("No old GoogleSitemaps found.") 122 123
Note: See TracChangeset
for help on using the changeset viewer.