Ballotage – 黒白ボールによる秘密投票


機能

かなりニッチな用途ですが:多くのクラブ、協会、ロジ(同好会)では、黒と白のボールを用いた秘密投票によって新メンバーを承認しています。このプラグインは、その手続きをDiscourseに導入します:

  • /ballotage にある投票ページで、設定されたグループのメンバーが、指定された期間中(デフォルトは開始日の00:01から終了日の23:59まで、カスタム時間指定も可能)、最終的な1票(黒または白)を投じます。
  • /ballotage/manage にある管理ページで、監視グループと管理者が、投票実施中の投票済みメンバー、および投票終了後の黒/白の結果を確認できます。
  • 投票はキャンセルでき、その後確定(結果と参加者リストが不可逆的に削除される)し、最終的にリストから削除できます。
  • 同時に1つの投票のみ、投票ページへの任意の通知テキスト、英語とドイツ語に対応。

投票の秘密性の維持方法

  • データベースには、誰が投票したか(選択肢やタイムスタンプは含まない)と、2つの匿名カウンターのみが保存されます。メンバーと選択を紐付ける情報は一切ありません。カウンターは updated_at を更新せずに増分されます。
  • カウントは投票終了まで非公開です:参加者リストの横にリアルタイムのカウントを表示すると、観察者が新しい名前と、ちょうど動いたカウンターを照合できてしまうためです。
  • 確定処理では、結果と参加者リストが完全に削除されます。

限界:投票中に直接データベースにアクセスしてカウンターを監視できる者は、依然として投票を相関付けできます。これはプラグインの範囲外であり、組織的な対策が必要です。

設定

設定項目 説明
ballotage_enabled プラグインを有効にする
ballotage_voting_group 投票権を持つメンバーのグループ
ballotage_oversight_group 参加状況と結果を確認できるグループ(管理者は常に確認可能)
ballotage_oversight_can_manage 監視グループが投票の作成、キャンセル、確定、削除を行えるようにする
ballotage_info_text 投票ページに表示される任意の通知テキスト
ballotage_timezone 開始/終了時間のタイムゾーン(デフォルトは Europe/Berlin)

メンバーが投票ページを見つけられるよう、サイドバーやメニューに /ballotage へのリンクを追加してください。

互換性

Discourse 2026.7 以降。2026年9月から小規模なフォーラムで本番環境として稼働中です。

フィードバック、バグ報告、翻訳は歓迎です – こちらまたはGitHubにて。

「いいね!」 3