сортировать элементы коллекции с помощью getObjPositionInParent - PullRequest
2 голосов
/ 07 июня 2011

Я хотел бы иметь getObjPositionInParent в качестве критерия сортировки в коллекции.Я настроил его как «доступный» в настройках сайта для представлений коллекции.Но это не доступно.Я что-то забыл?

1 Ответ

5 голосов
/ 07 июня 2011

Вы ничего не забыли, но нашли ошибку в Plone. GopipIndex из plone.app.folder используется для индекса getObjPositionInParent. Но этот тип индекса не зарегистрирован ни для одного критерия сбора. Реестр критериев в Products.ATContentTypes.criteria должен включать отображение для GopipIndex. Вероятно, добавление его в список SORT_INDICES будет правильным решением. Чтобы сделать это извне, вы можете сделать что-то вроде:

# Make sort criteria available for the GopipIndex
from Products.ATContentTypes.criteria import _criterionRegistry
crit_reg = _criterionRegistry
crit_id = 'ATSortCriterion'
index = 'GopipIndex'

indices = crit_reg.criterion2index.get(crit_id, ())
crit_reg.criterion2index[crit_id] = indices + (index, )

value = crit_reg.index2criterion.get(index, ())
crit_reg.index2criterion[index] = value + (crit_id, )
...