[Checkins] SVN: Products.CMFDefault/trunk/Products/CMFDefault/upgrade/ Upgrade step and more complete support for all properties.

Charlie Clark cvs-admin at zope.org
Tue Mar 13 05:04:08 UTC 2012


Log message for revision 124592:
  Upgrade step and more complete support for all properties.
  

Changed:
  U   Products.CMFDefault/trunk/Products/CMFDefault/upgrade/configure.zcml
  U   Products.CMFDefault/trunk/Products/CMFDefault/upgrade/tests/cmf22Site.zexp
  U   Products.CMFDefault/trunk/Products/CMFDefault/upgrade/tests/test_syndication_upgrade.py
  U   Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to23.py

-=-
Modified: Products.CMFDefault/trunk/Products/CMFDefault/upgrade/configure.zcml
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/upgrade/configure.zcml	2012-03-13 00:16:54 UTC (rev 124591)
+++ Products.CMFDefault/trunk/Products/CMFDefault/upgrade/configure.zcml	2012-03-13 05:04:04 UTC (rev 124592)
@@ -231,6 +231,14 @@
         checker=".to23.check_root_site_manager"
         />
 
+    <genericsetup:upgradeStep
+        title="Upgrade syndication settings"
+        description="Upgrade to Python datetime based tool and annotations
+        adapter"
+        handler=".to23.upgrade_syndication_tool"
+        checker=".to23.check_syndication_tool"
+        />
+
   </genericsetup:upgradeSteps>
 
   <genericsetup:upgradeStep

Modified: Products.CMFDefault/trunk/Products/CMFDefault/upgrade/tests/cmf22Site.zexp
===================================================================
(Binary files differ)

Modified: Products.CMFDefault/trunk/Products/CMFDefault/upgrade/tests/test_syndication_upgrade.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/upgrade/tests/test_syndication_upgrade.py	2012-03-13 00:16:54 UTC (rev 124591)
+++ Products.CMFDefault/trunk/Products/CMFDefault/upgrade/tests/test_syndication_upgrade.py	2012-03-13 05:04:04 UTC (rev 124592)
@@ -37,13 +37,9 @@
     def setUp(self):
         super(FunctionalUpgradeTestCase, self).setUp()
         sm = getSiteManager()
-        #self.sm = sm
         sm.registerAdapter(SyndicationInfo, [IFolderish], ISyndicationInfo)
         syndication  = SyndicationTool()
         sm.registerUtility(syndication, ISyndicationTool)
-        from zope.annotation.interfaces import IAnnotations
-        from zope.annotation.attribute import AttributeAnnotations
-        #sm.registerAdapter(AttributeAnnotations, [IFolderish], IAnnotations)
         folder = PortalFolder("Dummy Portal Folder")
         self.folder = folder
 
@@ -55,6 +51,7 @@
         info.syUpdateBase = DateTime()
         info.syUpdatePeriod = 1
         info.syUpdateFrequency = 1
+        info.isAllowed = 1
         info.max_items = 5
         return info
 
@@ -82,4 +79,4 @@
 def test_suite():
     return unittest.TestSuite((
         unittest.makeSuite(FunctionalUpgradeTestCase),
-        ))
\ No newline at end of file
+        ))

Modified: Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to23.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to23.py	2012-03-13 00:16:54 UTC (rev 124591)
+++ Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to23.py	2012-03-13 05:04:04 UTC (rev 124592)
@@ -344,6 +344,8 @@
     adapter.base = DateTime_to_datetime(SyndicationInformation.syUpdateBase)
     adapter.frequency = SyndicationInformation.syUpdateFrequency
     adapter.max_items = SyndicationInformation.max_items
+    if getattr(SyndicationInformation, 'isAllowed', False):
+        adapter.enable()
     folder._delObject(SyndicationInformation.getId())
 
 
@@ -352,14 +354,24 @@
     portal = aq_parent(aq_inner(tool))
     try:
         syndication = getToolByName(portal, "portal_syndication")
-        return True
     except AttributeError:
         return False
+    infos = portal.ZopeFind(portal,
+                            obj_metatypes=["SyndicationInformation"],
+                            search_sub=True)
+    if infos != []:
+        return True
 
 
 def upgrade_syndication_tool(tool):
     """Replace SyndicatonInformation objects with SyndicationInfo adapters"""
+    logger = logging.getLogger('GenericSetup.upgrade')
     portal = aq_parent(aq_inner(tool))
     syndication = getToolByName(portal, "portal_syndication")
     syndication.base = DateTime_to_datetime(syndication.syUpdateBase)
-    portal.ZopeFind(portal, obj_metatypes=["SyndicationInformation"])
\ No newline at end of file
+    syndication.isAllowed and True or False
+    infos = portal.ZopeFindAndApply(portal,
+                                    obj_metatypes=["SyndicationInformation"],
+                                    search_sub=True,
+                                    apply_func=change_to_adapter)
+    logger.info("SyndicationTool updated and SyndicationInformation replaced by Annotations")



More information about the checkins mailing list