Дополнительный запрос из Добавление события: фильтр в язык запросов фильтра тем (расширение плагина Discourse Events):
Фильтр event: теперь объединён и работает — спасибо!
Однако я столкнулся с пробелом, который ограничивает его полезность на практике: маршрут /filter (а следовательно, и плагин Custom Topic Lists) запрашивает только обычные темы. Сообщения полностью исключены, так как они используют отдельную систему маршрутов (/topics/private-messages-group/... / topics/private-messages/...).
Это означает, что сообщество, использующее Сообщения наряду с публичными обсуждениями, не может создать единый унифицированный взгляд «все события». Нужно две отдельные страницы, и нельзя комбинировать фильтры между ними.
Отметим, что система поиска уже охватывает оба архетипа с помощью in:all — но она не может сообщить мне, какие результаты являются событиями. Система фильтров знает о событиях — но не видит сообщений. Ни одна из них бесполезна по отдельности!
Проблема
event:any покажет все публичные темы с событиями, но молча пропустит любые события, созданные в личных сообщениях. Для групп, которые используют личные сообщения для приглашений, координации или событий по приглашениям, это значительная слепая зона.
На то же ограничение наткнулся @pfaffman — findFilteredTopics не получает темы с archetype = 'private_message':
Предлагаемое решение
Разрешить маршруту /filter опционально включать личные сообщения через селектор архетипа, например:
event:any archetype:regular,privatemessage
Или более простой булевый флаг:
event:any include-messages
Пример использования
Как менеджер сообщества, я хочу иметь одну ссылку в боковой панели, которая показывает каждое событие на сайте — публичное или личное, — чтобы ничего не потерялось между двумя отдельными представлениями.