「ランキング選択」投票は円グラフでは正しく機能しません

:information_source: 概要

円グラフタイプとランキング選択投票を併用すると、誤った結果が生成されます。ユーザーが実際に選択した順位に関係なく、各選択肢に1票が与えられます。この動作により、グラフは誤解を招き、ランキング選択のロジックと互換性がなくなります。

:walking_woman: 再現手順

  1. コンポーザーで投票を作成をクリックします。
  2. 詳細オプション(歯車アイコン)を開きます。
  3. 投票フィールドを入力します(任意)。ただし、グラフタイプは「棒グラフ」ではなく**「円グラフ」**を選択します。
  4. 上部に戻り、投票タイプとしてランキング選択を選択します。
  5. 投票を保存して公開します。

この時点で、投票は円グラフタイプを使用しますが、これはランキング選択投票に対応するように設計されていません。

:white_check_mark: 期待される結果

システムは次のいずれかを行う必要があります。

  • 「ランキング選択」が選択されたときに、自動的に棒グラフに切り替える。
  • ランキング選択投票で円グラフを選択できないようにする。

:x: 観測された結果

投票は円グラフを使用し、ユーザーが1つまたは数個の選択肢しかランク付けしなかった場合でも、選択肢ごとに1票をカウントします。グラフはすべての選択肢を均等に表示するため、結果は無意味になります。

:books: 追加コンテキスト

一時的な回避策が適用されました。

poll = Poll.find_by(id: 123)
poll.chart_type = 'bar'
poll.save

コンソールで投票のグラフタイプを pie から bar に手動で更新すると、問題が解決し、正確な結果が復元されます。

「いいね!」 3

FYI 興味深いエッジケースです @merefield

「いいね!」 1

これは有効なエッジケースではありません。

Ranked Choice は現在、コアではサポートされているグラフがありません。

これは、円グラフで視覚化されることを意図したものではありません。 Ranked Choice はラウンドで構成されており、それを単一の円グラフで表現することはできません。

ここでのバグは、もしあれば、インターフェースがそれを許可すべきではなかったのに、誰かがグラフを選択できたということでしょう。誰かがその設定コードを変更して許可したのでしょうか?

以前は適切なグラフである Sankey を提供し、それは機能していましたが、Discourse は(非常にサポートされており人気のある)依存ライブラリを追加するため、マージを拒否しました。それももっともです。

CDCK が Sankey の組み込みに関する姿勢を変更した場合、それを最新のコードに移行し、PR を準備するための資金提供を喜んで受けます。

私のプラグインのフォークは、Ranked Choice のために Sankey を表示します。それはおそらく非常に古く、誰もそのメンテナンスに資金を提供していないため、メンテナンスが必要です。

ご自由にご利用ください。

自分で言うのもなんですが、かなりクールです。

円グラフよりは間違いなく良いです!!

「いいね!」 1