Приватные ответы в Discourse

Github: GitHub - communiteq/discourse-private-replies · GitHub

Этот плагин скрывает ответы в темах от всех, кроме автора темы и автора сообщения.

Сценарии использования

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

Другой сценарий — аукцион, где что-то продаётся. Люди могут разместить свои ставки, а после завершения продажи владелец темы может раскрыть все ставки, чтобы показать сообществу, что всё прошло по правилам.

Использование

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

Если вы являетесь автором темы, то внизу темы появится новая кнопка.

button

Нажав эту кнопку, вы активируете функцию «Приватные ответы» для данной темы.

Выше темы появится баннер, и произойдёт следующее:

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

banner

При повторном нажатии на кнопку тема вернётся к обычному режиму.

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

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

Настройки

  • private_replies_participants_can_see_all — если включено, любой участник темы может видеть все ответы
  • private_replies_min_trust_level_to_see_all — пользователи с этим уровнем доверия или выше могут видеть все ответы
  • private_replies_groups_can_see_all — пользователи из этих групп всегда могут видеть все ответы (по умолчанию: сотрудники)
  • private_replies_see_all_from_groups — сообщения от пользователей из этих групп всегда видны всем (по умолчанию: сотрудники)
  • private_replies_topic_starter_primary_group_can_see_all — пользователи из той же основной группы, что и автор темы, могут видеть все ответы

Ограничения

Плагин отключает следующие способы получения содержимого сообщений:

  • просмотр темы (то есть обычный способ просмотра сообщений)
  • профиль пользователя — активность
  • поиск
  • сырое содержимое (/raw/topic_id/post_id)

Однако вы всё ещё можете узнать, кто писал в теме:

  • Иконки в списке тем по-прежнему показывают, кто писал в теме.
  • Внизу темы вы также увидите сообщение «пользователь xxx отвечает».
  • Темы также отображаются в профиле пользователя — сводка.

Однако ни один из этих способов не раскрывает содержимое сообщений.

Предыстория:

Моя супруга — учительница (древнегреческий и классическая латынь) — уже несколько лет использует Discourse в своих классах. Она использует его в основном для раздачи заданий ученикам и последующего их обсуждения. Однако все задания сдаются на бумаге во время уроков.

До сих пор — но поскольку школы закрыты из-за паники вокруг коронавируса, она переходит на 100% онлайн-обучение, включая задания. Теперь все ученики отправляют свои работы ей по электронной почте. Это крайне неэффективно, так как требует от неё значительных административных усилий (и могу сказать, что она не очень хороша в таких вещах :wink:).

Мы обсуждали несколько вариантов, и она сказала: «Почему бы не создать тему, где люди смогут видеть только мои сообщения (то есть сообщения автора темы) и свои собственные? Это позволит мне публиковать задание как тему, а каждый ученик сможет разместить свой ответ под ней, не видя ответов других. Затем, когда все сдадут работы и придёт время обсуждения, я хочу иметь возможность нажать кнопку, чтобы снять завесу и сделать все сообщения в теме видимыми для всех, чтобы они могли видеть и обсуждать работы друг друга».

Да — гениально! (вот почему я её люблю). Поэтому я создал плагин для этого. Предыдущее обсуждение здесь: Topic replies invisible until topic owner decides to reveal them?

79 лайков
Reply only visible to the post owner
Anyway to make Forms in Discourse - One Category?
Is there a "Reply to View" plugin for Discourse?
Let topic owner approve replies to their topic
Is this secure? Concept for private info in replies
Making a Category or Replies in a Topic Only Visible by Poster and Admin
Help With a Private Topics/Replies Alternative?
Is there an option on Discourse to allow a logged-in member to see only the topics where they participated?
Way to make part of the post visible to author and staff only?
Hide ALL replies to Topics in a Category by default using Spoiler Text Plugin
How to schedule posts (not topics)?
Is there a way to hide some text in a post?
Private post feature
Author-only Topic (take 2)
Will uninstalling a plugin leave any residual debris files in the database?
A new way to lead and facilitate conversations
Private Topics Plugin
Allow post author to see/reply to whisper posts
Discourse BCC
Private Topics Plugin
Is there a "Reply to View" plugin for Discourse?
Error Can't search when No login
Discourse Like and/or Reply to reveal the post
Help with auto-close topic?
2020: The Year in Review
Post Read-only mode on a category
Display 'top level comments' separate from comment replies (Alternative to Threaded Comments?)
Permissions in certain category
Resources for using Discourse in the classroom
Offering "private support" as part of a public support community
Offering "private support" as part of a public support community
Allow write access without read access
Permissions and clients/users

Новые способы, которыми школы могут использовать Discourse! Отличная работа! :grinning:

10 лайков

Очень круто, спасибо, что поделились этим, @RGJ :clinking_beer_mugs:

15 лайков

Отлично, что это появилось!

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

11 лайков

Очень круто. Я wondered, есть ли способ всё же получить доступ к содержимому приватных ответов:

  • по Группе (Учителя)
  • по Уровню доверия (все учителя имеют как минимум Уровень доверия 3).
9 лайков

Почему вы считаете, что это лучше?

Это довольно хорошая идея. Добавить это в плагин должно быть несложно.
Я буду иметь это в виду, но сейчас у меня самого нет конкретного случая использования. Однако приветствуются pull-запросы!

6 лайков

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

7 лайков

Да, это действительно полезно. Значит, это можно решить с помощью настройки категории «разрешить приватные ответы». Я думал, вы хотели настройку «темы по умолчанию имеют приватные ответы», что было бы сложнее реализовать.

6 лайков

Привет, Ричард! Твой учитель должен быть доволен, потому что твой плагин работает отлично :grinning:

У меня есть два предложения по улучшению:

  1. Можно ли сделать эту функцию активной по умолчанию? Это должно настраиваться в параметрах категории. Не нужно делать это вручную для каждой темы.
  2. Сделать ответы видимыми только для определённых групп, которые настраиваются в параметрах?
7 лайков

Привет! Я хотел бы добавить переводы для вашего плагина. Попытался добавить два дополнительных файла: client.en и server.en. Затем я выполнил команду ./launcher rebuild app, но после смены локали в пользовательском интерфейсе перевод не появился. Что я упустил?

1 лайк

Файлы должны называться client.XX.yml и server.XX.yml, где XX — код языка.

Однако файлы для en (английский язык) уже существуют: discourse-private-replies/config/locales at master · communiteq/discourse-private-replies · GitHub, поэтому я не уверен, что вы сделали или к чему стремитесь.

3 лайка

Я сделал именно это (добавил client.de.yml и server.de.yml для немецкого языка), но ничего не изменилось.

  • Вероятно, я нашел ошибку. Я пропустил код языка в файле. Я проверю это позже.
2 лайка

Не могли бы вы создать PR, когда всё заработает? Это было бы очень кстати!

1 лайк

Всё работает, это была моя ошибка. Я добавлю все языки в твой форк, когда закончу.

2 лайка

Привет! У меня возникли ошибки в /sidekiq из-за вашего плагина. Не могли бы вы проверить свою установку? У вас тоже есть такие ошибки?

Ошибка Wrapped I18n::InvalidLocaleData: не удалось загрузить переводы из /var/www/discourse/plugins/discourse-private-replies/config/locales/server.ar.yml: #
<Psych::SyntaxError: (/var/www/discourse/plugins/discourse-private-replies/config/locales/server.ar.yml): при разборе блочного сопоставления на строке 3, столбце 5 не найдена ожидаемая ключевая часть>

Лишняя кавычка ", которую следует удалить.

private_replies_enabled: "Включить плагин "Частные ответы."
2 лайка

Спасибо за сообщение! Я уже внес исправление.

3 лайка

Привет,
Установка через админ-интерфейс не работает. Это только для хуков?

Ошибка:

Файл about.json не найден. Убедитесь, что это плагин для Discourse.
1 лайк

Мне не знакомо это сообщение об ошибке. Оно не входит в исходный код Discourse. Вы уверены, что это точная формулировка?

Плагин также не устанавливается через административный интерфейс.
Обратитесь к инструкции: Install plugins on a self-hosted site.

2 лайка

@RGJ
Наша компания Haddee стремится разработать несколько новых функций для плагина.
Подумываю, не могли бы вы добавить лицензию, чтобы упростить и сделать более гладким процесс внесения вкладов.

Спасибо :slight_smile:

6 лайков

Правильно, установка через систему хуков действительно сработала.
Похоже, его нельзя установить через админку, как темы и расширения, так как он включает серверные функции. Именно поэтому его называют плагином (столько специфических терминов и различных способов расширения или кастомизации Discourse, что нам, разработчикам, легко запутаться).

Этот плагин выглядит чистым и достаточно компактным, чтобы его было легко настраивать.

Спасибо за ответы :wink:

2 лайка