2

我有一个派生自 ATBTreeFolder 的文件夹内容类型,它在 plone 4(实际上在 Products.Archetypes 中)将排序设置为“无序”。

如果我继续设置要排序的顺序,这只是一个空字符串,文件夹会混淆并且不会向我显示文件夹的内容。事实上,我会得到这样的错误:

  File "buildout-cache/eggs/plone.folder-1.0.1-py2.6.egg/plone/folder/default.py", line 130, in getObjectPosition
    raise ValueError('No object with id "%s" exists.' % id)
ValueError: No object with id "someid" exists.

我假设需要运行一些迁移才能在最初无序的文件夹上设置排序,但我在 plone.app.folder 和 plone.folder 中找不到适用于这种情况的任何东西。

4

1 回答 1

5

我编写了一个似乎可以解决问题的升级脚本:

catalog = getToolByName(context, 'portal_catalog')
for brain in catalog(portal_type='MyType'):
    obj = brain.getObject()
    if obj._ordering == 'unordered':
        obj.setOrdering(u'')
    order = obj.getOrdering()
    for id in obj._tree:
        if id not in order._order():
            order.notifyAdded(id)
于 2012-02-03T16:29:55.080 回答