[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