[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