Bug(バグ) #1922
完了トピック検索の検索対象がコミュニティ数だけしかヒットしない
0%
説明
Overview (現象)¶
本来は全員に公開されているトピックが表示されるべきだが、
全体に公開されているコミュニティ数だけしかトピックが表示されない。
また公開設定の判定にも以下のような問題がある。
- 「Web全体に公開」のコミュニティトピックが表示されない
- 「コミュニティ参加者のみ公開」のコミュニティトピックが参加者でも表示されない
Causes (原因)¶
全員に公開のコミュニティidを検索対象としているが、
カラム名に id を指定しているためコミュニティidと一致するトピックしたヒットしない。
$q->andWhereIn('id', opCommunityTopicToolkit::getPublicCommunityIdList()) ->orderBy('updated_at DESC');
Way to fix (修正内容)¶
id は間違いであり、 community_id とするべきである。
Masato Nagasawa さんがほぼ14年前に更新
- ステータス を Accepted(着手) から Pending Review(レビュー待ち) に変更
- 進捗率 を 0 から 50 に変更
以下リビジョンで修正しました。
https://github.com/tejimaya/opCommunityTopicPlugin/commit/42166df1a6142ce717b2296df82313d6e8deba6a
https://github.com/tejimaya/opCommunityTopicPlugin/commit/e8593c78ceb0e83a31ab2a1523a2e0638d65c061
区分 | 期待結果 | 結果 |
コミュニティより多くのトピックを作成 | すべてのトピックが検索結果として表示される | ○ |
「全員に公開」のトピック表示 | 表示される | ○ |
参加していないコミュニティの「コミュニティ参加者のみ公開」のトピック表示 | 表示されない | ○ |
参加しているコミュニティの「コミュニティ参加者のみ公開」のトピック表示 | 表示される | ○ |
「 Web全体に公開」のトピック表示 | 表示される | ○ |
Shinichi Urabe さんが13年以上前に更新
参加者のみ公開でも、自分が参加しているコミュニティトピック、イベントも表示する修正になっていますので、その旨がわかるチケットタイトル、と説明が必要かと思います。
表示する対応についてはバグではなく、機能追加になるかと思います。
Kousuke Ebihara さんが約13年前に更新
現状判明している問題点についてメモしておきます。
http://redmine.openpne.jp/issues/1922#note-2 の指摘の通り、このチケットでは複数種類の対応がおこなわれています。
1. Web 全体に公開のコミュニティのトピックがヒットしない問題の修正
2. コミュニティ ID リストを元に、その ID を持つトピックを取得しようとしていた問題の修正(このチケットの本文で説明されている通りの内容)
3. 自分が参加しているコミュニティの ID を検索対象に含める対応
このうち、今回このチケットで対応するべき問題は 2. のみのはずで、 1. と 3. は本来であればこのチケットで扱うべき種類のものではありません。また、 1. はまだ問題ないでしょうが 3. はすべての公開コミュニティの ID と 参加しているコミュニティの ID のリストを array_merge() で結合しようとしていますが、巨大な配列に対してこの操作をおこなうとメモリを多く消費する可能性があることがわかっています。少なくとも安定版の OpenPNE をターゲットしているバージョンで取り込むべきではないでしょうし、 OpenPNE 3.6 RC に取り込まれることを想定したバージョンであっても微妙な線です。
Kousuke Ebihara さんが約13年前に更新
2. コミュニティ ID リストを元に、その ID を持つトピックを取得しようとしていた問題の修正(このチケットの本文で説明されている通りの内容)
についてですが、 http://www.openpne.jp/archives/5967/ の緊急リリースですでに対応が実施されています(ただし、 master には変更が入っていないようです)。
また、
1. Web 全体に公開のコミュニティのトピックがヒットしない問題の修正
3. 自分が参加しているコミュニティの ID を検索対象に含める対応
もこのチケットで扱うべき範囲を超えており、適切ではありません。
そこで、
1. このチケットの変更をすべて取り消す
2. master ブランチに OPSA-2011-001 の変更を取り込む
3. このチケットを重複扱いでクローズする
4. 1. に関するバグチケットを優先度 Normal として作成する
5. 3. に関する改善チケットを作成する
という対応をおこないたいと思います。
Kousuke Ebihara さんが約13年前に更新
https://github.com/tejimaya/opCommunityTopicPlugin/commit/3b3ee08f48d580cc2621b9ce0d491c8f866aaaff
https://github.com/tejimaya/opCommunityTopicPlugin/commit/3919b7bf836cefdd963ca19f67ee97dd7f5c5498
にて、このチケットでおこなわれた変更を取り消しました。
https://github.com/tejimaya/opCommunityTopicPlugin/commit/5b1bc7ff580239ccda15983c60be2678c5b1b634
で緊急リリースにおける変更を取り込みました。
両過程において特にコンフリクト等も発生しなかったため、本チケットはこれで重複扱いとしてクローズします。
Kousuke Ebihara さんが約13年前に更新
- ステータス を Pending Review(レビュー待ち) から Invalid(無効) に変更
- 対象バージョン を削除 (
1.0.2)
- Enhancement(機能追加・改善) #2396: 自分が参加している、非公開コミュニティのトピック検索がおこなえるようにする
- Bug(バグ) #2395: OpenPNE 3.7.x 以上において、 Web 全体に公開のコミュニティのトピックがトピック検索にヒットしない
のチケットを作成しました。 http://redmine.openpne.jp/issues/1922#note-5 の通り、重複扱いでこのチケットをクローズします。