Plone: ​​Как отсортировать портлет navtree, используя другой список в качестве базового порядка? - PullRequest
1 голос
/ 08 сентября 2010

У меня есть navtree на Plone-сайте, который уже использует эту конфигурацию:

navigation = mapping['navigation']
navigation.includeTop = True
navigation.currentFolderOnly = False
navigation.topLevel = 0
navigation.setProperty('metaTypesNotToList', ['ATBooleanCriterion', ...(another types go here) ..., MemberDataContainer'])
navigation.setProperty('idsNotToList',['Members', 'events'])

В результате получается портлет NavTree, в котором перечислены следующие ссылки: (информация в () - это идентификаторы элементовте, которые мы используем, когда мы не хотим, чтобы navtree показывал тогда, помещая затем переменную idsNotToList в navtree_properties)

  • Home (я думаю, что это id / root, но кто-топомогите мне рассказать, какой именно идентификатор получен из опции: navigation.includeTop=True)
  • Справка (/ help)
  • Поиск по библиографии (/ searchbibliography)
  • Статистика(/ статистика)

Теперь мне нужно отсортировать это navtree, используя этот другой список (из идентификаторов) в качестве шаблона:

['root', 'searchbibliography', 'help', 'statistics']

, чтобы порядок NavTree отображался именно такзаданный порядок списка, показывая мне ссылки, как это:

  • Дом
  • Поиск по библиографии
  • Справка
  • Статистика

Мы видим, что здесь нет алфавитного порядка.Там точно определенный порядок.

Итак, как я могу это сделать?

1 Ответ

3 голосов
/ 09 сентября 2010

Решено: ID корневой страницы front-pageЯ мог бы решить эту проблему, выполнив при установке продукта:

def install(portal):
    portal = getToolByName(portal, 'portal_url')
    portal = portal.getPortalObject()

    portal.moveObjectsToTop(['front-page', 'searchbibliography', 'help', 'statistics'])
    portal.plone_utils.reindexOnReorder(portal)

Заказ folder_contents моего портала автоматически заказывал портлет навигации (который использует тот же порядок папки портала (то есть, folder_contents)).

...