Add event: filter to the topic filter query language (Discourse Events plugin extension) からのフォローアップのリクエスト:
event: フィルターは統合され、正常に動作しています。ありがとうございます!
しかし、実用上の有用性を制限するギャップに直面しました。/filter ルート(およびそれに依存するカスタムトピックリストプラグイン)は通常のトピックのみをクエリ対象とします。メッセージは、別のルートシステム(/topics/private-messages-group/... / topics/private-messages/...)を使用するため、完全に除外されます。
つまり、公開ディスカッションとメッセージを併用しているコミュニティでは、単一の統合された「すべてのイベント」ビューを構築できません。2つの別々のページが必要となり、両方にまたがってフィルターを組み合わせることはできません。
注目すべき点として、検索システムはすでに in:all を使用して両方のアーキタイプ(archetype)を横断してスコープ指定していますが、どの結果がイベントであるかを判別できません。フィルターシステムはイベントを認識していますが、メッセージを見ることができません。どちらか一方だけでは十分に機能しません!
問題
event:any はイベントを含むすべての公開トピックを表示しますが、PMで作成されたイベントは黙ってスキップされます。招待、調整、招待制のイベントのためにPMを使用するグループにとって、これは大きな盲点です。
この制限は @pfaffman 氏にも同様に発生しました。findFilteredTopics は archetype = 'private_message' のトピックに到達しません:
解決案
/filter ルートが、アーキタイプセレクターを通じてオプションでPMを含められるようにしてください。例えば:
event:any archetype:regular,privatemessage
または、よりシンプルなブール値で:
event:any include-messages
ユースケース
コミュニティマネージャーとして、公開・非公開を問わずサイト上のすべてのイベントを表示するサイドバーリンクを1つ設置したいと考えています。これにより、2つの別々のビューの間で重要な情報が漏れ落ちるのを防げます。