Как я могу исправить: Члены (Этот объект из продукта CMFPlone не работает!)? - PullRequest
2 голосов
/ 23 июня 2011

У меня есть сайт Plone 2.5, который при обновлении до Plone 4.1rc3 (или 4.0.x), кажется, имеет поврежденный каталог членов (даже если я сначала обновляюсь до 3.3.x).

Во время курсаиз обновления, я получаю это:

2011-06-23 13:44:39 ERROR plone.app.upgrade Upgrade aborted. Error:
Traceback (most recent call last):
  File "/Users/aclark/Downloads/eggs-directory/Products.CMFPlone-4.1rc3-py2.6.egg/Products/CMFPlone/MigrationTool.py", line 175, in upgrade
    step['step'].doStep(setup)
  File "/Users/aclark/Downloads/eggs-directory/Products.GenericSetup-1.6.3-py2.6.egg/Products/GenericSetup/upgrade.py", line 142, in doStep
    self.handler(tool)
  File "/Users/aclark/Downloads/eggs-directory/plone.app.upgrade-1.1rc3-py2.6.egg/plone/app/upgrade/v40/alphas.py", line 478, in updateLargeFolderType
    update(brain)
  File "/Users/aclark/Downloads/eggs-directory/plone.app.upgrade-1.1rc3-py2.6.egg/plone/app/upgrade/v40/alphas.py", line 472, in update
    obj._setPortalTypeName('Folder')
AttributeError: _setPortalTypeName
> /Users/aclark/Downloads/eggs-directory/plone.app.upgrade-1.1rc3-py2.6.egg/plone/app/upgrade/v40/alphas.py(472)update()
    471         obj = brain.getObject()
--> 472         obj._setPortalTypeName('Folder')
    473         reindex(obj, idxs=['portal_type', 'Type', 'object_provides'])

ipdb> obj
<persistent broken Products.CMFPlone.LargePloneFolder.LargePloneFolder instance '\x00\x00\x00\x00\x00\x00\x07W'>

Почему это происходит?Разве это не должно обрабатываться кодом устаревания LargePloneFolder?Я никогда не видел этого раньше.Я знаю, что в какой-то момент произошла реорганизация кода в отношении пакетов Products.CMPlone и Plone (так что один или другой теперь является шимом), и мне интересно, может ли это вызвать проблемы.

В ZMI папка участников выглядит следующим образом:

enter image description here

Что я могу сделать, чтобы попытаться исследовать / решить эту проблему?

1 Ответ

5 голосов
/ 24 июня 2011

Ваша папка для участников относится к временам, предшествующим архетипам.Если я правильно помню, миграции ATContentTypes в ранних выпусках Plone 2.1.x в какой-то момент пропустили большие папки.

В Plone 2.5 создайте новую «Большую папку Plone», убедитесь, что она правильного типа (Продукты.ATContentTypes.content.folder.ATBTreeFolder), переместите в него содержимое папки «Участники», удалите старую папку «Участники» и переименуйте новую большую папку в «Участники».

Возможно, код миграции ATContentTypes все еще существует, но ябольше не могу вспомнить, как это назвать.Вы также можете написать свой собственный код миграции на основе Products.contentmigration и запустить его на сайте Plone 3.x.

...