2012-02-03 25 views
2

我有一個從ATBTreeFolder派生的文件夾內容類型,它在plone 4中(實際上在Products.Archetypes中)將排序設置爲「無序」。如何將無序文件夾遷移到Plone中的已排序

如果我繼續並設置排序順序,這只是一個空字符串,該文件夾會感到困惑,並且不會顯示該文件夾的內容。事實上,我會得到錯誤是這樣的:

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

我寫了升級腳本,似乎要解決的問題:

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) 
相關問題