Plone: ​​метод catalog_object не будет добавлять мои (AT) объекты

У меня есть конвейер transmogrifier для вставки объектов в мою базу данных Zope (импорт файлов zexp из структуры каталогов). Это работает - объекты созданы; но я не добавляю их в portal_catalog.

Я добавил раздел для явного добавления объектов в каталог, вдохновленный plone.app.transmogrifier.reindexobject: Я звоню portal_catalog.catalog_object(obj) за каждый предмет.

Объекты существуют, и getPhysicalPath дает правильные значения, но объекты не добавляются. Там нет сообщения об ошибке или исключения вообще.

Я пытался указать список индексов (idxs аргумент), но это ничего не изменило. Если не указано, все индексы должны быть заполнены в любом случае, верно?

Так как это выглядит как transaction проблема для меня (без ошибок, но в каталоге тоже ничего не хранится), я пробовал код транзакции (начало, точка сохранения, фиксация и в случае сброса исключений), но это не помогло. Когда я звоню в каталог сразу после catalog_object вызов (portal_catalog(path='/Plonesite/full/path/to/object')), ничего не произошло, и возвращается пустой список.

Каталог содержит объекты; даже объекты моих пользовательских типов данных (на основе AT). Даже не Folder объекты моего импорта проиндексированы.

Без объектов в каталоге мой импорт бесполезен. Что я могу сделать?

Спасибо!

Изменить: Любая подсказка о том, как получить мои деревья объектов в каталоге приветствуется! Даже если это не может быть интегрировано в мой процесс. Мне нужно каталогизированное содержимое...

Мои пользовательские типы содержимого содержатся в Plone Catalog Tool поле выбора страницы, но я не знаю, достаточно ли этого.

Редактировать 2: Каким-то образом мои объекты были каталогизированы - unrestrictedSearchResults метод показывает их! Однако не может быть желательным решением использовать этот метод во всем; поэтому мне нужно как-то "не ограничивать" записи.

1 ответ

Решение

Оказалось, что у меня есть monkey:patch (xmlns:monkey="http://namespaces.plone.org/monkey") для Products.CMFPlone.CatalogTool.CatalogTool.searchResults Способ; это фильтрует каталог для моего дополнительного поля subportal если не указано специальное значение для него - даже в представлении управления... К сожалению, у меня не было возможности указать это специальное значение в этом представлении.

Таким образом, решение было отсеять все неправильные значения (для subportals, которые не существуют в другом дереве Zope), чтобы значение по умолчанию вступило в силу.

Боюсь, что это довольно специфично для моей установки...

Другие вопросы по тегам