Баллотаж – секретное голосование чёрными и белыми шариками

:information_source: Описание Секретные голосования с использованием чёрных и белых шаров (“ballotage”) для групп участников с контролем за явкой.
:hammer_and_wrench: Ссылка на репозиторий GitHub - DaniW42/discourse-ballotage: A Discourse plugin for secret black/white-ball ballots ("ballotage" — in German "Kugelung"), as used by clubs, societies and other membership organizations for admitting new members. A member either casts a black or a white ball; who voted is recorded, but what they voted is not. · GitHub
:open_book: Гид по установке Как установить плагины в Discourse

Возможности

Довольно нишевая тема… Но: многие клубы, общества и ложи принимают новых членов путём секретного голосования с использованием чёрных и белых шаров. Этот плагин переносит эту процедуру в Discourse:

  • Страница голосования по адресу /ballotage, где члены настроенной группы отдают один окончательный голос – чёрный или белый – в течение установленного периода (по умолчанию с 00:01 дня начала до 23:59 дня окончания, можно указать произвольное время).
  • Страница управления по адресу /ballotage/manage для группы контроля и администраторов: кто проголосовал во время проведения голосования и результат (чёрные/белые) после его завершения.
  • Голосования можно отменить, затем завершить (результат и список участников необратимо удаляются) и, наконец, удалить из списка.
  • Одно голосование за раз, необязательный информационный текст на странице голосования, включены английский и немецкий языки.

Как обеспечивается секретность голосов

  • В базе данных хранится кто проголосовал (без указания выбора и временных меток) и два анонимных счётчика – ничего не связывает участника с его выбором. Счётчики увеличиваются без изменения 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 года.

Обратная связь, сообщения об ошибках и переводы приветствуются – здесь или на GitHub.

3 лайка