Голосование за посты в Discourse

:discourse2: Краткое описание Голосование за посты в Discourse позволяет создавать темы с возможностью голосования за отдельные посты.
:open_book: Руководство по установке Этот плагин включён в ядро Discourse. Отдельная установка плагина не требуется.

Возможности

Чтобы создать новую тему с возможностью голосования за посты, откройте меню в верхнем левом углу редактора и выберите «Переключить голосование за посты»:

В режиме голосования за посты в теме доступен фильтр для сортировки ответов по количеству голосов или по активности. Вот пример его работы:

Настройка

Параметры сайта

После установки плагин включён по умолчанию. Доступные административные настройки:

Настройка Описание на сайте
post voting enabled Включить плагин голосования за посты
post voting undo vote action window Количество минут, в течение которых пользователи могут отменять голоса в темах с голосованием (введите 0 для отсутствия ограничения)
post voting comment limit per post Максимальное количество комментариев, разрешённых в каждом посте
post voting enable likes on answers Включить кнопку лайка для ответов в темах с голосованием
min trust to flag posts voting comments Минимальный уровень доверия для отметки комментариев в голосованиях

Настройки для конкретных категорий

Доступны две настройки категорий. Используйте ключ на странице категории и перейдите в настройки, чтобы увидеть их:

:discourse2: Размещено у нас? Этот плагин доступен в наших тарифах Business и Enterprise Post Voting | Discourse - Civilized Discussion


Благодарности

Этот плагин вдохновлён замечательной работой Павильона над плагином Вопрос-Ответ. Как всегда, спасибо за ваш постоянный вклад в проект Discourse. :medal_sports: :slight_smile:

63 лайка
Thoughts on a plugin which turns discourse into stackoverflow
Question Answer Plugin
Plugin: Ask me anything or Q&A format (threaded replies)
Any forum using the Q&A plugin?
How to get answer's comments? (stackoverflow-like & tiny)
A reddit-ish theme for Discourse
Multiple Choice Poll questions
Voting Up the Best Answer!
A case for downvotes and different ordering of replies
A reddit-ish theme for Discourse
Post Voting comments ignore the Discourse Translator plugin
Points based currency to reward quality
Building a plugin to add Stack Exchange features
Grow my community
But I didn't click Answer, I clicked Edit
Showing replies "in-place" like Reddit, instead of show 'em at the bottom
Badge Query (SQL)
Topics vs Posts vs Replies
Topic Ratings Plugin
Topic Ratings Plugin
Reordering a topic by ‘most liked’ or threaded replies
Renaming Discourse Upvotes [Post Voting]
- 1 like feature
How to simplify the forum? (couple of needs listed)
What Will be Best theme for a site like ecommerce
Is there any plugin for downvoting questions and replies in Discourse
Feedback on Our Community
'I have same question' theme/plugin
Journal Plugin
Looking for a plugin for upvote/down votes
Looking for a plugin for upvote/down votes
Custom embedded replies
No indication on post voting "Votes" tab that whispers exist
Nested comments feature
Whispers disappear from the display but still are in the database
No indication on post voting "Votes" tab that whispers exist
Whispers cannot be seen in Post Voting enabled categories
Bundling more popular plugins with Discourse core
Photo Competition or Contest - Do We Have Anything?
Admin setting for activity default sort order for Discourse Post Voting plugin
Introducing nested replies
I am looking for a Reputation/Karma system that display below profile avatar in topic post and profile
Creating an Analytical Hub using Categories, Approval Process and Upvoting
Referencing types of review items created by plugins
An error occurred while restoring from a backup: discourse_functions.raise_discourse_voting_category_settings_readonly() does not exist
Community Notes in Discourse to Combat Misinformation
Journal Plugin
How to mention in Discourse comments, or disable commenting?
Question Answer Plugin
Need a developer to get over the last couple of humps to launch our community
How do I get users to reply to each other? This doesn't appear on my site
Discourse Topic Voting
Question Answer Plugin
Integrating Discourse and Stackoverflow?
Integrating Discourse and Stackoverflow?
How to Sort Posts By User Engagement?
Looking for a way to set the post section
What would be the best plug-in for Contest with public voting in two categories?
How to make our forum looks like Q&A community than a forum?
Sort answers by number of likes in topic
Ordering replies by most liked
Some users get javascript errors when trying to load our Discourse
Question Answer Plugin
Topic/replies structure
Debate / deliberation plugin
Customize new topic button text

Я немного фанат Q&A, поэтому с радостью вижу новый формат постов в Discourse и с интересом замечаю, насколько он… знаком! У меня есть несколько вопросов о функциональности и возможностях настройки. Возможно, многие ответы уже есть в пакете плагина, но я подумал, что будет полезно разместить их и здесь…

  1. Есть ли встроенное обучение для плагина, которое знакомит пользователей с функцией, объясняет, как и когда её использовать и т.д.? Мне очень нравится @discobot — возможно, существует обучающий модуль или руководство по знакомству с Q&A?
  2. Вы упоминаете, что администраторы могут установить Q&A как значение по умолчанию для категории. Если они это сделают, должны ли темы обязательно быть в формате Q&A или они просто получают это значение по умолчанию?
    • Если это значение по умолчанию, есть ли возможность сделать его обязательным? Можно ли отключить Q&A на уровне категории?
  3. Если категория настроена на использование Q&A по умолчанию, понятно ли это пользователям? Я вижу, что кнопка создания поста будет помечена как Q&A, но могу представить, что опытный пользователь при первом взаимодействии с новой функцией может проигнорировать эту надпись, если что-то не привлечёт его внимание к типу поста до отправки.

Спасибо за то, что сделали эту крутую функцию официальной!

3 лайка

Да, автору темы нужен апдейт, вот текущие настройки в параметрах категории

Пользователь увидит другую кнопку в редакторе. Вы можете изменить текст кнопки через кастомизацию текста.

4 лайка

Пост был разделен на новую тему: Доступны ли голоса/ответы в теме о голосовании за посты через API?

Кто-нибудь смог ограничить количество голосов на пользователя на тему? В нашем случае мы проводим фотоконкурсы, и мы хотим ограничить каждого пользователя максимум 5 голосами на тему.

2 лайка

Привет,

в этом посте мне порекомендовали опубликовать эту проблему здесь, чтобы оставить обратную связь.


В теме, на которую есть ссылка выше на форуме OpenStreetMap, где этот плагин используется в некоторых категориях, обсуждаются недостатки пользовательского интерфейса этого плагина.

Кратко их можно описать так:

Этот плагин запрещает отвечать на ответ. Спорно, следует ли это принуждение применять или делать настраиваемым для каждого экземпляра отдельно, но если эта функция включена, происходит следующее:

  • Пользователь может выделить текст и процитировать его. Пользователь может ввести ответ. Только в самом конце, когда ответ должен быть отправлен, процесс прерывается с сообщением об ошибке:

    Произошла ошибка: вам не разрешено создавать пост в ответ на другой пост.

    Это сообщение не особенно полезно. Оно не объясняет, в чём проблема. Фактически, если ответ не разрешён, функция «цитирование-ответ» вообще не должна была быть доступна.

  • Когда ответ отправляется по электронной почте, письмо просто исчезает, и отправитель не получает уведомления. Должно приходить уведомление о недоставке с пояснительным сообщением о том, в чём проблема.

  • Разрешены только комментарии. Но они «съедают» часть форматирования (например, цитаты, см. комментарий в этом посте), а также имеют ограничение по количеству символов, что не позволяет выражать более сложные мысли.

С уважением!

4 лайка

Сообщение было разделено на новую тему: Как скрыть опцию «добавить комментарий»

@Discourse

Комментарии к ответам скрываются после 5 комментариев.

Как можно убрать ограничение в 5 комментариев и сделать так, чтобы они отображались только по опции «Показать комментарии»?

Я искал эту же проблему и был удивлён, что о ней ещё не упоминалось. Разрешение пользователю постоянно попадать в состояние ошибки при использовании цитат и отсутствие возможности использовать разметку в комментариях создают очень разрозненный пользовательский опыт. Кроме того, сообщения об ошибках непонятны для пользователей при попытке напрямую ответить на сообщение.

Надеюсь увидеть улучшения, которые помогут улучшить этот UX.

1 лайк

После 5 комментариев остальные скрываются
Как сделать так, чтобы остальные комментарии скрывались уже после 1 или 2 комментариев?

Несколько вопросов по этому отличному плагину:

  1. Почему у первого поста (OP) есть варианты голосования? Ведь это же вопрос, так что его не следует оценивать как ответ?
  2. Есть ли какие-то подсказки по SQL-запросам для бейджей, которые я могу использовать для создания бейджей на основе этого? Например, получить 10 голосов в теме с голосованием и т. д.?..
1 лайк

Я нашел один для голосования по темам, который, возможно, можно адаптировать для голосования по сообщениям?

Можно ли с помощью этого плагина ограничить количество голосов «против», которые пользователи могут поставить по всем темам в течение одного дня?

Возможно ли переместить расположение этой функции? В идеале мы хотели бы разместить её там, где сейчас находится кнопка «Нравится» с двойным нажатием.

1 лайк

Я не могу упомянуть пользователя при ответе на пост в голосовании. Это задумано так или это ошибка?

1 лайк

В самом комментарии, а не в «правильном» ответе? Если да, то, думаю, это сделано намеренно, чтобы комментарии оставались более легковесными по сравнению с полноценным опытом создания сообщения. Этот вопрос уже поднимался ранее (How to mention in Discourse comments, or disable commenting?), но, насколько я знаю, в итоге запрос на новую функцию (#feature request) так и не был подан.

2 лайка

Я тоже так думаю. :slight_smile: Но Сэм категоричен в том, что это так:

Похоже, что пока таких бейджей ещё нет.

Если у вас есть конкретные критерии для бейджей, которые вы хотели бы создать, стоит открыть тему в канале #data-reporting для каждого из них. :+1:

Я думаю, несколько примеров могут выглядеть примерно так:

Получить 10 голосов на ответ в теме с голосованием за посты

SELECT p.user_id, p.created_at AS granted_at, p.id AS post_id
FROM post_voting_votes pvv
  JOIN posts p ON p.id = pvv.votable_id
WHERE pvv.direction = 'up'
  AND p.post_number <> 1
  AND (:backfill OR p.id IN (:post_ids))
GROUP BY p.user_id, p.id
HAVING COUNT(*) >= 10

Или более сложный вариант, где учитывается разница между «вверх» и «вниз» голосами:

WITH vote_totals AS (

SELECT 
    p.user_id,
    p.id AS post_id,
    p.created_at AS granted_at,
    (COUNT(*) FILTER (WHERE pvv.direction = 'up') - COUNT(*) FILTER (WHERE pvv.direction = 'down')) AS total
FROM post_voting_votes pvv
  JOIN posts p ON p.id = pvv.votable_id
WHERE p.post_number <> 1
GROUP BY 1, 2

)

SELECT *
FROM vote_totals 
WHERE total >= 10
  AND (:backfill OR post_id IN (:post_ids))

:red_exclamation_mark: Эти запросы потребуют дополнительного тестирования, чтобы убедиться, что они работают как задумано. :slight_smile:

Однако стоит учесть, что итоговое значение динамично: сегодня «10» завтра может превратиться в «5», если будут добавлены больше голосов «вниз» (во втором примере). А если бейдж основан только на голосах «вверх», как в первом примере, то вы могли получить 10, но в интерфейсе будет показано только 5, когда учтутся голоса «вниз».

5 лайков

Привет, только что активировал этот плагин на французском сайте и заметил неправильный французский перевод второго варианта в настройках категории:

Les nouveaux sujets ne peuvent être que des sujets postérieurs au vote dans cette catégorie.

Должно быть:

Les nouveaux sujets ne peuvent être que des sujets de vote de message dans cette catégorie.

Пояснение: путаница между «post» как сообщением, которое может быть постом, и «post» как «posterior», то есть после.

Привет! Также возможно ли включить голосование за посты в темах, которые уже опубликованы? Спасибо.

:partying_face: Этот плагин теперь включен в ядро Discourse в рамках Bundling more popular plugins with Discourse core. Если вы используете самостоятельное размещение и пользуетесь этим плагином, вам нужно удалить его из вашего app.yml перед следующим обновлением.

1 лайк