#29 — The migration seems to be resetting the portlets

by Lucie Lejard last modified Aug 05, 2010 02:40 PM
State Rejected
Version:
Area Functionality
Issue type Bug
Severity Medium
Submitted by Lucie Lejard
Submitted on Jun 11, 2010
Responsible Lucie Lejard
Target release:
From an email from TonyR on the Plone users mailing list:

I've just done the upgrade using the method you suggested and it appears to have worked a treat - although it looks to have reset all the portlets within all of the subsites back to those from the main site.
Added by Lucie Lejard on Jun 23, 2010 02:54 PM
Responsible manager: (UNASSIGNED)tbesluau
Thomas, can you try and reproduce the error, and if possible propose a fix for it.
Added by Thomas Besluau on Jul 01, 2010 03:36 PM
Issue state: UnconfirmedConfirmed
I could reproduce the error.
It is actually not a bug/error but simply something we didn't take into consideration in the migration:
 1) we get information from the child site we want to migrate
 2) we create a folder with this information
 3) we transform the folder into a sub-site
 4) we erase the original child site
So here in step 1) we do not grab the portlet information, and in step 2) since we create a folder it will inherit its parent's portlets.

To solve it:
I need to figure out how to get/set an item's portlets in python and implement it in the migration code.
Added by Thomas Besluau on Jul 06, 2010 12:49 PM
Responsible manager: tbesluaulucie
When using the changes of the attached diff, I have the following error. Note that is seems like the child site we want to get the portlet assignment from is the only one that will error out this way. I can access its parent for instance and I can access the newly created child folder.

2010-07-06 08:58:25 ERROR Zope.SiteErrorLog 1278421105.520.279883564034 http://localhost:51000/[…]/reinstallProducts
Traceback (innermost last):
  Module ZPublisher.Publish, line 119, in publish
  Module ZPublisher.mapply, line 88, in mapply
  Module Products.PDBDebugMode.runcall, line 70, in pdb_runcall
  Module ZPublisher.Publish, line 42, in call_object
  Module <string>, line 6, in _facade
  Module AccessControl.requestmethod, line 64, in _curried
  Module Products.CMFQuickInstallerTool.QuickInstallerTool, line 648, in reinstallProducts
  Module Products.CMFQuickInstallerTool.QuickInstallerTool, line 589, in installProducts
  Module Products.CMFQuickInstallerTool.QuickInstallerTool, line 514, in installProduct
   - __traceback_info__: ('collective.lineage',)
  Module Products.ExternalMethod.ExternalMethod, line 231, in __call__
   - __traceback_info__: ((<PloneSite at /Plone>,), {}, None)
  Module /home/thomas/.buildout/eggs/collective.lineage-0.6-py2.4.egg/collective/lineage/Extensions/Install.py, line 11, in install
  Module /home/thomas/.buildout/eggs/collective.lineage-0.6-py2.4.egg/collective/lineage/Extensions/Install.py, line 6, in runProfile
  Module Products.GenericSetup.tool, line 390, in runAllImportStepsFromProfile
   - __traceback_info__: profile-collective.lineage:default
  Module Products.GenericSetup.tool, line 1179, in _runImportStepsFromContext
  Module Products.GenericSetup.tool, line 1090, in _doRunImportStep
   - __traceback_info__: collective.lineage: default
  Module collective.lineage.setuphandlers, line 33, in importVarious
  Module Products.GenericSetup.upgrade, line 112, in doStep
  Module collective.lineage.upgrades, line 40, in migrateChildFolders
  Module zope.component._api, line 103, in getMultiAdapter
ComponentLookupError: ((<ChildFolder at /Plone/test>, <plone.portlets.manager.PortletManager object at 0xcfc072c>), <InterfaceClass plone.portlets.interfaces.IPortletAssignmentMapping>, u'')
> /home/thomas/.buildout/zope/Zope-2.10.11-final-py2.4/lib/python/zope/component/_api.py(103)getMultiAdapter()
-> raise ComponentLookupError(objects, interface, name)
Attached:
lineageupgradediff.txt — text/plain, 1 Kb
Added by Thomas Besluau on Jul 06, 2010 12:51 PM
Lucie: regarding the diff, I am only testing the migration of the left portlet here (olassignment stands for old-left-assignment)
Added by Lucie Lejard on Aug 05, 2010 02:40 PM
Issue state: ConfirmedRejected
We are not able to access the portlets anymore on old child sites when starting the migration. We won't be able to fix this issue.

No responses can be added.