Plone: ​​Как отсортировать портлет navtree, используя другой список в качестве базового порядка?

У меня есть 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 (я думаю, что этот идентификатор /root , но кто-нибудь поможет мне здесь, сказав, какой именно идентификатор получен в результате опции: navigation.includeTop=True)
  • Помогите помогите)
  • Поиск по библиографии (/searchbibliography)
  • Статистика (/статистика)

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

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

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

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

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

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


person Gabriel L. Oliveira    schedule 08.09.2010    source источник


Ответы (1)


Решено: Идентификатор корневой страницы 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)).

person Gabriel L. Oliveira    schedule 08.09.2010