[Checkins] SVN: Products.CMFDefault/trunk/Products/CMFDefault/ - improved upgrade steps

Yvo Schubbe y.2008 at wcm-solutions.de
Fri Nov 28 11:57:04 EST 2008


Log message for revision 93430:
  - improved upgrade steps

Changed:
  U   Products.CMFDefault/trunk/Products/CMFDefault/CHANGES.txt
  U   Products.CMFDefault/trunk/Products/CMFDefault/upgrade/configure.zcml
  U   Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to21.py
  U   Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to22.py

-=-
Modified: Products.CMFDefault/trunk/Products/CMFDefault/CHANGES.txt
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/CHANGES.txt	2008-11-28 16:42:05 UTC (rev 93429)
+++ Products.CMFDefault/trunk/Products/CMFDefault/CHANGES.txt	2008-11-28 16:57:04 UTC (rev 93430)
@@ -10,8 +10,7 @@
   See: https://bugs.launchpad.net/bugs/299058 .
 
 - upgrade: Added basic upgrade steps.
-  So far they just allow to add and upgrade the root site manager and to set
-  add view expressions.
+  So far they just allow to upgrade the site object and types.
 
 - DiscussionTool: Make sure to only ask "real" content for their type
   information when checking whether discussions are allowed or not.

Modified: Products.CMFDefault/trunk/Products/CMFDefault/upgrade/configure.zcml
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/upgrade/configure.zcml	2008-11-28 16:42:05 UTC (rev 93429)
+++ Products.CMFDefault/trunk/Products/CMFDefault/upgrade/configure.zcml	2008-11-28 16:57:04 UTC (rev 93430)
@@ -6,7 +6,7 @@
   <genericsetup:upgradeStep
       source="2.0"
       destination="2.1"
-      title="Upgrade CMFDefault from 2.0 to 2.1 (only site object)"
+      title="Upgrade CMFDefault from 2.0 to 2.1 (only site object and types)"
       profile="Products.CMFDefault:default"
       handler=".to21.upgrade_default"
       />
@@ -14,7 +14,7 @@
   <genericsetup:upgradeStep
       source="2.1"
       destination="2.2"
-      title="Upgrade CMFDefault from 2.1 to 2.2 (only site object and add view expressions)"
+      title="Upgrade CMFDefault from 2.1 to 2.2 (only site object and types)"
       profile="Products.CMFDefault:default"
       handler=".to22.upgrade_default"
       />

Modified: Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to21.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to21.py	2008-11-28 16:42:05 UTC (rev 93429)
+++ Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to21.py	2008-11-28 16:57:04 UTC (rev 93430)
@@ -59,6 +59,7 @@
     portal = aq_parent(aq_inner(tool))
     logger = logging.getLogger('GenericSetup.upgrade')
     upgrade_CMFSite_object(aq_base(portal), logger)
+    upgrade_TypeInfos(portal, logger)
 
 def upgrade_CMFSite_object(portal, logger):
     try:
@@ -94,3 +95,22 @@
                 portal._properties = tuple(prop_map)
                 break
         logger.info("'email_charset' property added.")
+
+_FACTORIES = {
+    'CMFCore-manage_addPortalFolder': 'cmf.folder',
+    'CMFCore-manage_addCMFBTreeFolder': 'cmf.folder.btree',
+    'CMFDefault-addDocument': 'cmf.document',
+    'CMFDefault-addFavorite': 'cmf.favorite',
+    'CMFDefault-addFile': 'cmf.file',
+    'CMFDefault-addImage': 'cmf.image',
+    'CMFDefault-addLink': 'cmf.link',
+    'CMFDefault-addNewsItem': 'cmf.newsitem'}
+
+def upgrade_TypeInfos(portal, logger):
+    ttool = portal.portal_types
+    for ti in ttool.listTypeInfo():
+        key = '%s-%s' % (ti.getProperty('product'), ti.getProperty('factory'))
+        if key in _FACTORIES:
+            ti._updateProperty('product', '')
+            ti._updateProperty('factory', _FACTORIES[key])
+            logger.info("TypeInfo '%s' changed." % ti.getId())

Modified: Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to22.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to22.py	2008-11-28 16:42:05 UTC (rev 93429)
+++ Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to22.py	2008-11-28 16:57:04 UTC (rev 93430)
@@ -38,15 +38,33 @@
         portal.manage_addProperty('enable_actionicons', False, 'boolean')
         logger.info("'enable_actionicons' property added.")
 
+_ACTION_ICONS = {'download': 'download_icon.png',
+                 'edit': 'edit_icon.png',
+                 'folderContents': 'folder_icon.png',
+                 'localroles': 'localroles_icon.png',
+                 'metadata': 'metadata_icon.png',
+                 'view': 'preview_icon.png',
+                 'publish': 'approve_icon.png',
+                 'reject': 'reject_icon.png',
+                 'retract': 'retract_icon.png',
+                 'submit': 'submit_icon.png',
+                 'reviewer_queue': 'worklist_icon.png',
+                 }
+
 def upgrade_TypeInfos(portal, logger):
     ttool = portal.portal_types
     for ti in ttool.listTypeInfo():
-        if ti.getProperty('content_meta_type') == 'Discussion Item':
-            continue
-        if ti.getProperty('add_view_expr'):
-            continue
-        ti._updateProperty('add_view_expr',
-                           'string:${folder_url}/++add++%s'
-                           % quote(ti.getId()))
-        logger.info("TypeInfo '%s' changed." % ti.getId())
-
+        changed = False
+        if ti.getProperty('content_meta_type') != 'Discussion Item' and \
+                not ti.getProperty('add_view_expr'):
+            ti._updateProperty('add_view_expr',
+                               'string:${folder_url}/++add++%s'
+                               % quote(ti.getId()))
+            changed = True
+        for ai in ti.listActions():
+            if not ai.getIconExpression() and ai.getId() in _ACTION_ICONS:
+                ai.setIconExpression('string:${portal_url}/%s'
+                                     % _ACTION_ICONS[ai.getId()])
+                changed = True
+        if changed:
+            logger.info("TypeInfo '%s' changed." % ti.getId())



More information about the Checkins mailing list