2012-02-03 8 views
2

plone 4(実際にはProducts.Archetypes内)のATBTreeFolderから派生したフォルダーのコンテンツタイプは、順序が「順序なし」に設定されています。順序付けられていないフォルダーを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) 
関連する問題