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?

78 curtidas
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)
A new way to lead and facilitate conversations
Error Can't search when No login
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?
Will uninstalling a plugin leave any residual debris files in the database?
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

Novas formas de as escolas adotarem o Discourse! Bom trabalho! :grinning:

10 curtidas

Muito legal e obrigado por compartilhar isso, @RGJ :clinking_beer_mugs:

15 curtidas

Ótimo ver isso!

Minha única ressalva é que eu preferiria ter o recurso habilitado no nível da categoria, assim as respostas podem ser reveladas por tópico quando tudo for submetido.

11 curtidas

Muito legal, eu estava me perguntando se há uma maneira de ainda acessar o conteúdo de respostas privadas:

  • Por grupo (Professores)
  • Nível de confiança (todos os professores têm, no mínimo, Nível de confiança 3).
9 curtidas

Por que você acha que isso é melhor?

Essa é uma ideia bem boa. Não deve ser muito difícil adicionar isso ao plugin.
Vou ter isso em mente, mas no momento não tenho um caso de uso para isso pessoalmente. No entanto, PRs são bem-vindos!

6 curtidas

Impede abusos aleatórios por parte dos criadores de tópicos ao habilitar a configuração em categorias não intencionais. É uma situação do tipo “por que você faria isso?”, mas ainda assim algo que precisa de um sinalizador para ser resolvido.

7 curtidas

Sim, isso é realmente útil. Então, isso poderia ser resolvido com uma configuração de categoria ‘permitir respostas privadas’.
Eu pensei que você quisesse uma configuração ‘tópicos têm respostas privadas por padrão’, o que seria mais difícil de implementar.

6 curtidas

Olá, Richard! Seu professor deve estar feliz porque seu plugin funciona muito bem :grinning:

Penso em 2 melhorias:

  1. É possível deixar essa função ativa por padrão? Isso deve ser configurado nas definições da categoria. Não há necessidade de fazer isso manualmente em cada tópico.
  2. Tornar as respostas visíveis apenas para grupos específicos definidos nas configurações?
7 curtidas

Olá! Gostaria de adicionar traduções ao seu plugin. Tentei adicionar dois arquivos extras: client.en e server.en. Depois, executei ./launcher rebuild app, mas a tradução não apareceu após alterar o idioma na interface do usuário. O que estou esquecendo?

1 curtida

Os arquivos devem ser chamados client.XX.yml e server.XX.yml, onde XX é o código do idioma.

No entanto, já existem arquivos para en (inglês): discourse-private-replies/config/locales at master · communiteq/discourse-private-replies · GitHub, então não tenho certeza do que você fez ou do que está tentando realizar.

3 curtidas

Já fiz exatamente isso (adicionei client.de.yml e server.de.yml para o idioma alemão) e nada mudou.

  • Provavelmente, encontrei o erro. Esqueci o código do idioma no arquivo. Vou verificar isso mais tarde.
2 curtidas

Pode fazer um PR assim que conseguir fazer as coisas funcionarem? Isso seria muito apreciado!

1 curtida

Tudo está funcionando, foi um erro meu. Vou adicionar todos os idiomas ao seu fork quando terminar.

2 curtidas

Olá! Recebi erros em /sidekiq do seu plugin. Você pode verificar sua instalação? Você tem esses erros?

Wrapped I18n::InvalidLocaleData: não foi possível carregar as traduções de /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): chave esperada não encontrada ao analisar um mapeamento de bloco na linha 3 coluna 5>

Há uma aspa extra que deve ser removida.

private_replies_enabled: "Ative o plugin 'Respostas Privadas'."
2 curtidas

Obrigado por reportar isso! Já apliquei uma correção.

3 curtidas

Olá,
Não está instalando a partir da interface de administração. É apenas para hooks?

O erro é:

about.json não existe. Tem certeza de que este é um plugin do Discourse?
1 curtida

Não estou familiarizado com essa mensagem de erro. Ela não faz parte do código-fonte do Discourse. Tem certeza de que essa é a mensagem exata?

Além disso, os plugins não são instalados pela interface de administração.
Por favor, consulte Install plugins on a self-hosted site.

2 curtidas

@RGJ
Minha empresa, Haddee, está ansiosa para desenvolver alguns novos recursos para o plugin.
Eu estava me perguntando se você poderia adicionar uma licença a ele apenas para facilitar e suavizar as contribuições.

Obrigado :slight_smile:

6 curtidas

Certo, funcionou ao instalar pelo sistema de hooks de fato.
Acho que não pode ser instalado pelo admin como temas e extensões, pois possui recursos de servidor, e é por isso que é chamado de plug-in (tantos termos específicos e várias maneiras de estender ou personalizar o Discourse que podemos facilmente nos perder como desenvolvedores)

Este parece limpo e pequeno o suficiente para ser fácil de personalizar.

Obrigado pelas respostas :wink:

2 curtidas