[Testbot] Plone 4.3 - Python 2.6 - Build # 1871 - Still failing! - 7 failure(s)
jenkins at plone.org
jenkins at plone.org
Mon Mar 17 11:27:55 UTC 2014
-------------------------------------------------------------------------------
Plone 4.3 - Python 2.6 - Build # 1871 - Still Failing!
-------------------------------------------------------------------------------
http://jenkins.plone.org/job/plone-4.3-python-2.6/1871/
-------------------------------------------------------------------------------
CHANGES
-------------------------------------------------------------------------------
Repository: plone.app.upgrade
Branch: refs/heads/master
Date: 2014-03-13T14:50:54Z
Author: Anthony Gerrard () <anthonygerrard at gmail.com>
Commit: https://github.com/plone/plone.app.upgrade/commit/1501d9c8e4d08f8e0940f5b9856aa74314b54309
#12286 Need (Plone 4.0 upgrade) migration step for hidden static text portlets
* added a migration step to the 4.0.1 release. Only migrates contextual static text portlets, not group or content type portlets.
Files changed:
M CHANGES.txt
M plone/app/upgrade/v40/alphas.py
M plone/app/upgrade/v40/configure.zcml
M plone/app/upgrade/v40/tests.py
diff --git a/CHANGES.txt b/CHANGES.txt
index f4b90b3..74b9d2c 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -3,6 +3,10 @@ Changelog
1.3.7 (unreleased)
------------------
+
+- #12286 Need (Plone 4.0 upgrade) migration step for hidden static text
+ portlets
+ [anthonygerrard]
- provide upgrade step for plone.protect
[vangheem]
diff --git a/plone/app/upgrade/v40/alphas.py b/plone/app/upgrade/v40/alphas.py
index d9c06a8..4ff9323 100644
--- a/plone/app/upgrade/v40/alphas.py
+++ b/plone/app/upgrade/v40/alphas.py
@@ -1,5 +1,7 @@
import transaction
+from zope.component import queryMultiAdapter
+from zope.component import getUtilitiesFor
from zope.component import getSiteManager, getUtility
from zope.ramcache.interfaces.ram import IRAMCache
from zope.ramcache.ram import RAMCache
@@ -20,6 +22,11 @@
from plone.app.upgrade.utils import logger
from plone.app.upgrade.utils import loadMigrationProfile
from plone.app.upgrade.utils import unregisterSteps
+from plone.portlet.static.static import IStaticPortlet
+from plone.portlets.interfaces import IPortletAssignmentMapping
+from plone.portlets.interfaces import IPortletAssignmentSettings
+from plone.portlets.interfaces import IPortletManager
+
from Products.CMFCore.Expression import Expression
@@ -379,6 +386,31 @@ def cleanUpProductRegistry(context):
# Remove all product entries
for name in products.keys():
products._delObject(name)
+
+
+def migrateStaticTextPortlets(context):
+ """ Missing import step from #9286 Allow to show/hide portlets """
+ def migrate_portlets_for_object(obj, path):
+ portlet_managers = getUtilitiesFor(IPortletManager, context=obj)
+ for portlet_manager_name, portlet_manager in portlet_managers:
+ assignments = queryMultiAdapter(
+ (obj, portlet_manager), IPortletAssignmentMapping, context=obj)
+ if assignments is None:
+ continue
+ for portlet_id, portlet in assignments.items():
+ if IStaticPortlet.providedBy(portlet) and \
+ getattr(portlet, 'hide', False):
+ logger.info(
+ 'Found hidden static text portlet %s at %s' %
+ (portlet_id, path))
+ settings = IPortletAssignmentSettings(portlet)
+ settings['visible'] = False
+
+ logger.info('Migrating static text portlets')
+ portal = getToolByName(context, 'portal_url').getPortalObject()
+ portal.ZopeFindAndApply(
+ portal, search_sub=True, apply_func=migrate_portlets_for_object)
+ logger.info('Finished migrating static text portlets')
def migrateMailHost(context):
diff --git a/plone/app/upgrade/v40/configure.zcml b/plone/app/upgrade/v40/configure.zcml
index c80aa10..19c0c9d 100644
--- a/plone/app/upgrade/v40/configure.zcml
+++ b/plone/app/upgrade/v40/configure.zcml
@@ -57,6 +57,11 @@
handler=".alphas.cleanUpProductRegistry"
/>
+ <genericsetup:upgradeStep
+ title="Ensure hidden static text portlets stay hidden."
+ handler=".alphas.migrateStaticTextPortlets"
+ />
+
</genericsetup:upgradeSteps>
<!-- the source here needs to be kept in sync with the latest 3.x profile
diff --git a/plone/app/upgrade/v40/tests.py b/plone/app/upgrade/v40/tests.py
index ed75c7f..ed88a82 100644
--- a/plone/app/upgrade/v40/tests.py
+++ b/plone/app/upgrade/v40/tests.py
@@ -1,6 +1,9 @@
import time
-from zope.component import getSiteManager, queryUtility
+from zope.component import getMultiAdapter
+from zope.component import getSiteManager
+from zope.component import getUtility
+from zope.component import queryUtility
from zope.ramcache.interfaces.ram import IRAMCache
from Products.CMFCore.ActionInformation import Action
@@ -22,11 +25,17 @@
from plone.app.upgrade.v40.alphas import updateLargeFolderType
from plone.app.upgrade.v40.alphas import addRecursiveGroupsPlugin
from plone.app.upgrade.v40.alphas import cleanUpClassicThemeResources
+from plone.app.upgrade.v40.alphas import migrateStaticTextPortlets
from plone.app.upgrade.v40.betas import repositionRecursiveGroupsPlugin
from plone.app.upgrade.v40.betas import updateIconMetadata
from plone.app.upgrade.v40.betas import removeLargePloneFolder
from plone.app.upgrade.tests.base import MigrationTest
+from plone.portlet.static import static
+from plone.portlets.interfaces import IPortletAssignmentMapping
+from plone.portlets.interfaces import IPortletAssignmentSettings
+from plone.portlets.interfaces import IPortletManager
+
class FakeSecureMailHost(object):
@@ -330,7 +339,35 @@ def testFolderMigration(self):
self.assertTrue(isSaneBTreeFolder(folder))
self.assertEqual(folder.getId(), 'foo')
self.assertEqual(folder.Title(), 'Foo')
-
+
+ def testMigrateStaticTextPortlets(self):
+ class HiddenAssignment(static.Assignment):
+ hide = True
+
+ self.setRoles(["Manager"])
+ self.portal.invokeFactory('Folder', id="statictest")
+ folder = self.portal['statictest']
+
+ manager = getUtility(
+ IPortletManager, name='plone.rightcolumn',
+ context=folder)
+ assignments = getMultiAdapter(
+ (folder, manager), IPortletAssignmentMapping)
+ hidden_portlet = HiddenAssignment()
+ visible_portlet = static.Assignment()
+ assignments['hidden'] = hidden_portlet
+ assignments['visible'] = visible_portlet
+
+ migrateStaticTextPortlets(self.portal)
+
+ self.assertFalse(
+ IPortletAssignmentSettings(hidden_portlet).get(
+ 'visible', True))
+ self.assertTrue(
+ IPortletAssignmentSettings(visible_portlet).get(
+ 'visible', True))
+
+
class TestMigrations_v4_0alpha2(MigrationTest):
-------------------------------------------------------------------------------
-------------- next part --------------
A non-text attachment was scrubbed...
Name: CHANGES.log
Type: application/octet-stream
Size: 6602 bytes
Desc: not available
URL: <http://lists.plone.org/pipermail/plone-testbot/attachments/20140317/138eb94c/attachment-0002.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: build.log
Type: application/octet-stream
Size: 167767 bytes
Desc: not available
URL: <http://lists.plone.org/pipermail/plone-testbot/attachments/20140317/138eb94c/attachment-0003.obj>
More information about the Testbot
mailing list