Respostas Privadas no Discourse

Github: GitHub - communiteq/discourse-private-replies

Este plugin oculta as respostas do tópico para todos, exceto para o iniciador do tópico e o autor da postagem.

Casos de uso

Isso pode ser usado, por exemplo, para tarefas de casa onde o professor abre um tópico e posta uma tarefa, e todos os alunos postam suas respostas. Quando todos tiverem enviado seu trabalho, o professor poderá revelar as respostas para que os alunos possam discuti-las.
Um segundo caso de uso pode ser um leilão onde algo está à venda. As pessoas podem postar seus lances e, quando a venda for concluída, o proprietário do tópico poderá revelar todos os lances para mostrar à comunidade que tudo ocorreu de acordo com as regras.

Uso

Após instalar e habilitar o plugin, você pode ativar a funcionalidade do plugin em cada tópico.

Se você for o iniciador do tópico, verá um novo botão na parte inferior do tópico.

button

Ao pressionar este botão, você habilitou o recurso Respostas Privadas para este tópico.

Um banner aparecerá acima do tópico e o seguinte acontecerá:

  • as pessoas só poderão ver as postagens feitas por elas mesmas, pelo proprietário do tópico e por usuários em grupos selecionados.
  • apenas o proprietário do tópico poderá ver todas as postagens.

banner

Ao pressionar o botão uma segunda vez, o tópico voltará ao normal.

O plugin, quando habilitado, permitirá respostas privadas em todos os tópicos. No entanto, se a configuração private replies on selected categories only estiver habilitada, o plugin pode ser habilitado por categoria nas configurações de segurança da categoria.

Na mesma tela, você também encontrará a configuração para habilitar respostas privadas por padrão para todos os novos tópicos nessa categoria. Isso é especialmente útil quando os tópicos estão sendo enviados por e-mail.

Configurações

  • private_replies_participants_can_see_all se habilitado, qualquer pessoa que participou do tópico pode ver todas as respostas
  • private_replies_min_trust_level_to_see_all pessoas com este nível de confiança ou superior podem ver todas as respostas
  • private_replies_groups_can_see_all usuários nestes grupos podem sempre ver todas as respostas (padrão: staff)
  • private_replies_see_all_from_groups postagens de usuários nestes grupos são sempre visíveis para todos (padrão: staff)
  • private_replies_topic_starter_primary_group_can_see_all usuários no mesmo grupo primário do proprietário do tópico podem ver todas as respostas

Observações

O plugin desabilita as seguintes maneiras de recuperar o conteúdo das postagens:

  • visualização do tópico (ou seja, a maneira regular de ver as postagens)
  • perfil do usuário - atividade
  • busca
  • raw (/raw/topic_id/post_id)

No entanto, você ainda pode descobrir quem postou no tópico:

  • Os ícones da lista de tópicos ainda mostrarão quem postou no tópico.
  • Você também poderá ver ‘usuário xxx está respondendo’ na parte inferior do tópico.
  • Os tópicos também são visíveis no perfil do usuário - resumo.

No entanto, nenhum desses revela o conteúdo da postagem.

Contexto:

Minha SO é professora (grego antigo e latim clássico) e usa o Discourse em suas aulas há vários anos. Ela o usa principalmente para distribuir tarefas para seus alunos e discuti-las depois. No entanto, todas as tarefas são entregues em papel durante suas aulas.
Até agora - já que as escolas foram fechadas por causa de todo o pânico do coronavírus, ela está mudando para o ensino 100% online, incluindo as tarefas. Então, todos esses alunos estão atualmente enviando seus trabalhos por e-mail para ela. Isso é muito subótimo, pois exige que ela faça muita administração (e posso dizer que ela não é muito boa nessas coisas :wink:).
Estávamos discutindo algumas opções e ela disse: “por que não posso ter um tópico onde as pessoas só possam ver minhas postagens (ou seja, as postagens feitas pelo iniciador do tópico) e suas próprias postagens? Isso me permitiria postar uma tarefa como um tópico e ter cada aluno postando suas respostas abaixo, sem poder ver todas as outras respostas. Então, quando todos tiverem inserido seu trabalho e for hora de discutir, quero poder pressionar um botão para remover o véu e tornar todas as postagens do tópico visíveis para todos, para que todos possam ver e discutir o trabalho uns dos outros.”
Sim - brilhante! (é por isso que a amo). Então eu fiz um plugin para isso. Discussão anterior aqui: Topic replies invisible until topic owner decides to reveal them?

77 curtidas

New ways schools can adopt with Discourse! Nice job! :grinning:

10 curtidas

Very cool and thank you for sharing this @RGJ :beers:

15 curtidas

Great to see this!

My one nitpick is that I’d rather have the feature enabled at the category level, then replies can get revealed per-topic when everything’s submitted.

11 curtidas

Very cool, I was wondering if there is a way to still access the contents of private replies:

  • by Group (Teachers)
  • Trust Level (all teachers are at least Trust Level 3).
9 curtidas

Why do you think that’s better?

That’s a pretty good idea. It shouldn’t be too hard to add that to the plugin.
I’ll keep it in mind but right now I don’t have a use case for this myself. PR’s are welcome though!

6 curtidas

Prevents random abuse from topic starters enabling the setting on non-intended categories. It’s a “why would you do that?” situation but still something that needs a flag to resolve.

7 curtidas

Yeah, that’s useful indeed. So that could be solved by a category setting ‘allow private replies’.
I thought you wanted a ‘topics have private replies by default’ setting, which would be harder to build.

6 curtidas

Hello, Richard! Your teacher should be happy because your plugin works great :grinning:

I think about 2 improvements:

  1. Is it possible to make this function active by default? This should be set in the category settings. No need to do it manually with every topic.
  2. Make replies visible to specific groups set in the settings?
7 curtidas

Hi! I’d like to add translations to your plugin. Tried to add 2 extra files: client.en and server.en
Then I did ./launcher rebuild app, but the translation didn’t appear after I changed the locale in the user interface. What I missed?

1 curtida

The files should be called client.XX.yml and server.XX.yml where XX is the language code.

However, there are already files for en (English): https://github.com/communiteq/discourse-private-replies/tree/master/config/locales so I am not sure what you have done or what you are trying to accomplish.

3 curtidas

I’ve done this exact thing (added client.de.yml and server.de.yml for the German language) and nothing changed.

  • Probably, I found the mistake. I missed the language code in the file. I’ll check it later.
2 curtidas

Can you please make a PR once you’ve got things working? That would be much appreciated!

1 curtida

Everything is working, it was my mistake. I will add all languages to your fork when I finish it.

2 curtidas

Hi! I got errors in /sidekiq from your plugin. Can you please check your installation? Do you have such errors?

Wrapped I18n::InvalidLocaleData: can not load translations from /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): did not find expected key while parsing a block mapping at line 3 column 5>

There is an extra " that should be removed.

private_replies_enabled: "قم بتمكين المكون الإضافي "الردود الخاصة."
2 curtidas

Thank you for reporting this! I’ve pushed a fix.

3 curtidas

Hey,
It won’t install from the admin interface. Is it hooks only?

The error is:

about.json does not exist. Are you sure this is a Discourse plugin?
1 curtida

I am not familiar with that error message. It is not part of the Discourse source code. Are you sure this is the exact message?

Plugins are not installed from the admin interface either.
Please refer to Install plugins on a self-hosted site.

2 curtidas

@RGJ
My company, Haddee, is eager to develop some new features for the plugin.
I was wondering if you could put a license on it just to make contribution easier and smoother

Thanks :slight_smile:

6 curtidas

Right, it worked installing from the hooks system indeed.
I guess it can’t be installed from the admin like themes and extensions as it has server features and that’s why it’s called a plug-in (so many specific terms and various ways to extend or customize Discourse that we can easily get lost as a dev)

This one seems clean and small enough to be easy to customize.

Thanks for the replies :wink:

2 curtidas