[Checkins] SVN: Products.CMFDefault/trunk/Products/CMFDefault/ - added upgrade steps for default profile and views_support profile
Yvo Schubbe
cvs-admin at zope.org
Fri May 17 07:02:20 UTC 2013
Log message for revision 130244:
- added upgrade steps for default profile and views_support profile
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/to23.py
A Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to23views.py
-=-
Modified: Products.CMFDefault/trunk/Products/CMFDefault/CHANGES.txt
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/CHANGES.txt 2013-05-17 06:49:56 UTC (rev 130243)
+++ Products.CMFDefault/trunk/Products/CMFDefault/CHANGES.txt 2013-05-17 07:02:19 UTC (rev 130244)
@@ -4,7 +4,8 @@
2.3.0 (unreleased)
------------------
-- profiles: Modified Method Aliases used in type Actions.
+- profiles and upgrade: Modified Method Aliases used in type Actions.
+ Added upgrade steps for default profile and views_support profile.
- Actions: Added invisible 'global/search_form' and 'global/search' Actions.
The URLs of the search form and the search results pages are no longer
Modified: Products.CMFDefault/trunk/Products/CMFDefault/upgrade/configure.zcml
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/upgrade/configure.zcml 2013-05-17 06:49:56 UTC (rev 130243)
+++ Products.CMFDefault/trunk/Products/CMFDefault/upgrade/configure.zcml 2013-05-17 07:02:19 UTC (rev 130244)
@@ -246,6 +246,13 @@
checker=".to23.check_root_properties"
/>
+ <genericsetup:upgradeStep
+ title="Upgrade type infos"
+ description="Set action url expressions."
+ handler=".to23.upgrade_type_infos"
+ checker=".to23.check_type_infos"
+ />
+
</genericsetup:upgradeSteps>
<genericsetup:upgradeStep
@@ -257,4 +264,44 @@
sortkey="8"
/>
+ <genericsetup:upgradeStep
+ title="Mark 2.2 upgrade as finished"
+ source="2.1"
+ destination="2.2"
+ profile="Products.CMFDefault:views_support"
+ handler=".mark_as_finished"
+ sortkey="1"
+ />
+
+ <genericsetup:upgradeSteps
+ source="2.2"
+ destination="2.3"
+ profile="Products.CMFDefault:views_support"
+ sortkey="2">
+
+ <genericsetup:upgradeStep
+ title="Upgrade actions tool"
+ description="Add new browser views."
+ handler=".to23views.upgrade_actions_tool"
+ checker=".to23views.check_actions_tool"
+ />
+
+ <genericsetup:upgradeStep
+ title="Upgrade type aliases"
+ description="Add new browser views."
+ handler=".to23views.upgrade_type_aliases"
+ checker=".to23views.check_type_aliases"
+ />
+
+ </genericsetup:upgradeSteps>
+
+ <genericsetup:upgradeStep
+ title="Mark 2.3 upgrade as finished"
+ source="2.2"
+ destination="2.3"
+ profile="Products.CMFDefault:views_support"
+ handler=".mark_as_finished"
+ sortkey="3"
+ />
+
</configure>
Modified: Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to23.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to23.py 2013-05-17 06:49:56 UTC (rev 130243)
+++ Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to23.py 2013-05-17 07:02:19 UTC (rev 130244)
@@ -446,3 +446,78 @@
enable_actionicons = bool(enable_actionicons[0])
portal._updateProperty('enable_actionicons', enable_actionicons)
logger.info("'enable_actionicons' property fixed.")
+
+_ACTION_URLS = {
+ 'criteria.html': 'criteria', # CMFTopic
+ 'discussionitem_view': '',
+ 'document_edit_form': 'edit',
+ 'document_view': '',
+ 'edit.html': 'edit',
+ 'favorite_view': '',
+ 'file_edit_form': 'edit',
+ 'file_view': 'view',
+ 'folder_edit_form': 'properties',
+ 'folder_localrole_form': 'sharing',
+ 'image_edit_form': 'edit',
+ 'image_view': 'view',
+ 'link_edit_form': 'edit',
+ 'link_view': '',
+ 'metadata_edit_form': 'properties',
+ 'newsitem_edit_form': 'edit',
+ 'newsitem_view': '',
+ 'properties.html': 'properties',
+ 'topic_criteria_form': 'criteria', # CMFTopic
+ 'topic_edit_form': 'properties', # CMFTopic
+ 'view.html': 'view'}
+
+def check_type_infos(tool):
+ """2.2.x to 2.3.0 upgrade step checker
+ """
+ ttool = getToolByName(tool, 'portal_types')
+ for ti in ttool.listTypeInfo():
+ immediate_view = ti.getProperty('immediate_view')
+ if immediate_view in _ACTION_URLS:
+ return True
+
+ for ai in ti.listActions():
+ parts = ai.getActionExpression().rsplit('/')
+ if len(parts) < 2:
+ continue
+ old_name = parts[1]
+ if old_name in _ACTION_URLS:
+ return True
+ return False
+
+def upgrade_type_infos(tool):
+ """2.2.x to 2.3.0 upgrade step handler
+ """
+ logger = logging.getLogger('GenericSetup.upgrade')
+ ttool = getToolByName(tool, 'portal_types')
+ for ti in ttool.listTypeInfo():
+ changed = False
+ immediate_view = ti.getProperty('immediate_view')
+ if immediate_view in _ACTION_URLS:
+ ti._setPropValue('immediate_view', _ACTION_URLS[immediate_view])
+
+ for ai in ti.listActions():
+ parts = ai.getActionExpression().rsplit('/')
+ if len(parts) < 2:
+ continue
+ old_name = parts[1]
+ if old_name in _ACTION_URLS:
+ new_name = _ACTION_URLS[old_name] or '(Default)'
+ if new_name == '(Default)':
+ ai.setActionExpression(parts[0])
+ else:
+ ai.setActionExpression('{0}/{1}'.format(parts[0],
+ new_name))
+ aliases = ti.getMethodAliases()
+ old_value = aliases.pop(old_name, None)
+ if old_name.endswith('.html'):
+ old_name = '@@{0}'.format(old_name)
+ aliases[new_name] = old_value or old_name
+ ti.setMethodAliases(aliases)
+ changed = True
+
+ if changed:
+ logger.info("TypeInfo '%s' changed." % ti.getId())
Added: Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to23views.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to23views.py (rev 0)
+++ Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to23views.py 2013-05-17 07:02:19 UTC (rev 130244)
@@ -0,0 +1,101 @@
+##############################################################################
+#
+# Copyright (c) 2013 Zope Foundation and Contributors.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Upgrade steps to CMFDefault views_support 2.3.
+"""
+
+import logging
+
+from Products.CMFCore.utils import getToolByName
+
+
+_ACTION_URLS = {
+ 'user/login': 'string:${portal_url}/@@login.html',
+ 'user/join': 'string:${portal_url}/@@join.html',
+ 'user/change_password': 'string:${portal_url}/@@password.html',
+ 'user/preferences': 'string:${portal_url}/@@preferences.html',
+ 'user/logout': 'string:${portal_url}/@@logout.html',
+ 'user/logged_in': 'string:${portal_url}/@@logged_in.html',
+ 'object/syndication': 'string:${folder_url}/@@syndicate.html',
+ 'global/manage_members': 'string:${portal_url}/@@members.html',
+ 'global/members_register': 'string:${portal_url}/@@join.html',
+ 'global/search_form': 'string:${portal_url}/@@search_form.html',
+ 'global/search': 'string:${portal_url}/@@search.html',
+ 'global/configPortal': 'string:${portal_url}/@@configure.html'}
+
+def check_actions_tool(tool):
+ """2.2.x to 2.3.0 upgrade step checker
+ """
+ atool = getToolByName(tool, 'portal_actions')
+ for k, v in _ACTION_URLS.iteritems():
+ category_id, action_id = k.split('/')
+ try:
+ obj = atool[category_id][action_id]
+ except KeyError:
+ continue
+ prop = obj.getProperty('url_expr')
+ if prop != v:
+ return True
+ return False
+
+def upgrade_actions_tool(tool):
+ """2.2.x to 2.3.0 upgrade step handler
+ """
+ logger = logging.getLogger('GenericSetup.upgrade')
+ atool = getToolByName(tool, 'portal_actions')
+ for k, v in _ACTION_URLS.iteritems():
+ category_id, action_id = k.split('/')
+ try:
+ obj = atool[category_id][action_id]
+ except KeyError:
+ continue
+ prop = obj.getProperty('url_expr')
+ if prop != v:
+ obj._setPropValue('url_expr', v)
+ logger.info("Updated '{0}' action.".format(k))
+
+_ALIASES = {
+ 'CMF BTree Folder': {'sharing': '@@sharing.html'},
+ 'Discussion Item': {'(Default)': '@@view.html', 'view': '@@view.html'},
+ 'Document': {'gethtml': '@@source.html'},
+ 'File': {'view': '@@view.html'},
+ 'Folder': {'sharing': '@@sharing.html'},
+ 'Image': {'view': '@@view.html'},
+ 'News Item': {'gethtml': '@@source.html'}}
+
+def check_type_aliases(tool):
+ """2.2.x to 2.3.0 upgrade step checker
+ """
+ ttool = getToolByName(tool, 'portal_types')
+ for ti_id, new_aliases in _ALIASES.iteritems():
+ ti = ttool[ti_id]
+ for k, v in new_aliases.iteritems():
+ if ti.queryMethodID(k) != v:
+ return True
+ return False
+
+def upgrade_type_aliases(tool):
+ """2.2.x to 2.3.0 upgrade step handler
+ """
+ ttool = getToolByName(tool, 'portal_types')
+ logger = logging.getLogger('GenericSetup.upgrade')
+ for ti_id, new_aliases in _ALIASES.iteritems():
+ changed = False
+ ti = ttool[ti_id]
+ for k, v in new_aliases.iteritems():
+ if ti.queryMethodID(k) != v:
+ aliases = ti.getMethodAliases()
+ aliases[k] = v
+ ti.setMethodAliases(aliases)
+ changed = True
+ if changed:
+ logger.info("Updated '{0}' type.".format(ti_id))
Property changes on: Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to23views.py
___________________________________________________________________
Added: svn:eol-style
+ native
More information about the checkins
mailing list