Réponses privées dans Discourse

Github : GitHub - communiteq/discourse-private-replies

Ce plugin masque les réponses d’un sujet pour tous, sauf pour le créateur du sujet et l’auteur du message.

Cas d’utilisation

Ceci peut être utilisé par exemple pour des devoirs où l’enseignant ouvre un sujet et publie un devoir, et tous les élèves postent une réponse avec leurs solutions. Lorsque tout le monde a soumis son travail, l’enseignant peut révéler les réponses afin que les élèves puissent en discuter.

Un deuxième cas d’utilisation pourrait être une vente aux enchères où quelque chose est proposé à la vente. Les gens peuvent poster leur enchère et une fois la vente terminée, le propriétaire du sujet peut révéler toutes les enchères afin de montrer à la communauté que tout s’est déroulé conformément aux règles.

Utilisation

Après avoir installé et activé le plugin, vous pouvez activer la fonctionnalité du plugin sur une base par sujet.

Si vous êtes le créateur du sujet, vous verrez un nouveau bouton en bas du sujet.

bouton

En appuyant sur ce bouton, vous avez activé la fonctionnalité Réponses Privées pour ce sujet.

Une bannière apparaîtra au-dessus du sujet et voici ce qui se passe :

  • les gens ne pourront voir que les messages qu’ils ont postés, ceux du propriétaire du sujet et ceux des utilisateurs des groupes sélectionnés.
  • seul le propriétaire du sujet pourra voir tous les messages.

bannière

En appuyant une seconde fois sur le bouton, le sujet reviendra à la normale.

Le plugin, lorsqu’il est activé, autorise les réponses privées sur tous les sujets. Cependant, si le réglage réponses privées uniquement sur certaines catégories est activé, le plugin peut être activé par catégorie dans les paramètres de sécurité de la catégorie.

Dans cet même écran, vous trouverez également le réglage pour activer les réponses privées par défaut pour tous les nouveaux sujets de cette catégorie. C’est particulièrement utile lorsque les sujets sont soumis par e-mail.

Paramètres

  • private_replies_participants_can_see_all si activé, toute personne ayant participé au sujet peut voir toutes les réponses.
  • private_replies_min_trust_level_to_see_all les personnes ayant ce niveau de confiance ou plus peuvent voir toutes les réponses.
  • private_replies_groups_can_see_all les utilisateurs de ces groupes peuvent toujours voir toutes les réponses (par défaut : staff).
  • private_replies_see_all_from_groups les messages des utilisateurs de ces groupes sont toujours visibles par tout le monde (par défaut : staff).
  • private_replies_topic_starter_primary_group_can_see_all les utilisateurs du même groupe principal que le propriétaire du sujet peuvent voir toutes les réponses.

Limitations

Le plugin désactive les méthodes suivantes pour récupérer le contenu des messages :

  • vue du sujet (c’est-à-dire la manière habituelle de voir les messages)
  • profil utilisateur - activité
  • recherche
  • brut (/raw/topic_id/post_id)

Cependant, vous pouvez toujours savoir qui a posté dans le sujet :

  • Les icônes de la liste des sujets montreront toujours qui a posté dans le sujet.
  • Vous pourrez également voir “l’utilisateur xxx est en train de répondre” en bas du sujet.
  • Les sujets sont également visibles dans le profil utilisateur - résumé.

Cependant, tout cela ne révèle pas le contenu du message.

Contexte :

Ma conjointe est enseignante (grec ancien et latin classique) et utilise Discourse dans ses classes depuis plusieurs années maintenant. Elle l’utilise principalement pour distribuer des devoirs à ses élèves et en discuter ensuite. Cependant, tous les devoirs sont rendus sur papier pendant ses cours.

Jusqu’à présent - depuis que les écoles ont fermé à cause de toute la panique du coronavirus, elle passe à un enseignement 100% en ligne, y compris les devoirs. Tous ces élèves lui envoient actuellement leur travail par e-mail. C’est très sous-optimal car cela lui demande beaucoup d’administration (et je peux vous dire qu’elle n’est pas très douée pour ce genre de choses :wink:).

Nous discutions de quelques options et elle a dit : “Pourquoi ne puis-je pas avoir un sujet où les gens ne peuvent voir que mes messages (c’est-à-dire les messages du créateur du sujet) et leurs propres messages ? Cela me permettrait de publier un devoir comme sujet et que chaque élève poste ses réponses en dessous sans pouvoir voir toutes les autres réponses. Ensuite, quand tout le monde aura entré son travail et qu’il sera temps de discuter, je veux pouvoir appuyer sur un bouton pour faire disparaître le voile et rendre tous les messages du sujet visibles par tout le monde, afin qu’ils puissent tous voir et discuter du travail des autres.”

Oui - génial ! (c’est pourquoi je l’aime). J’ai donc créé un plugin pour cela. Discussion précédente ici : Topic replies invisible until topic owner decides to reveal them?

78 « J'aime »
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

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

10 « J'aime »

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

15 « J'aime »

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 « J'aime »

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 « J'aime »

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 « J'aime »

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 « J'aime »

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 « J'aime »

Bonjour Richard ! Ton enseignant devrait être ravi car ton plugin fonctionne très bien :grinning:

Je pense à deux améliorations :

  1. Est-il possible d’activer cette fonction par défaut ? Cela devrait être configurable dans les paramètres de la catégorie. Pas besoin de le faire manuellement pour chaque sujet.
  2. Rendre les réponses visibles pour des groupes spécifiques définis dans les paramètres ?
7 « J'aime »

Salut ! J’aimerais ajouter des traductions à votre plugin. J’ai essayé d’ajouter deux fichiers supplémentaires : client.en et server.en. Ensuite, j’ai exécuté ./launcher rebuild app, mais la traduction n’apparaît pas après avoir changé la langue dans l’interface utilisateur. Qu’est-ce que j’ai oublié ?

1 « J'aime »

Les fichiers doivent être nommés client.XX.yml et server.XX.yml, où XX est le code de la langue.

Cependant, des fichiers existent déjà pour en (anglais) : discourse-private-replies/config/locales at master · communiteq/discourse-private-replies · GitHub, donc je ne suis pas sûr de ce que vous avez fait ou de ce que vous essayez d’accomplir.

3 « J'aime »

J’ai fait exactement la même chose (ajout de client.de.yml et server.de.yml pour la langue allemande) et rien n’a changé.

  • Probablement, j’ai trouvé l’erreur. J’ai oublié le code de langue dans le fichier. Je le vérifierai plus tard.
2 « J'aime »

Peux-tu s’il te plaît ouvrir une PR une fois que tout fonctionne ? Ce serait très apprécié !

1 « J'aime »

Tout fonctionne, c’était de ma faute. J’ajouterai toutes les langues à votre fork une fois terminé.

2 « J'aime »

Bonjour ! J’ai rencontré des erreurs dans /sidekiq provenant de votre plugin. Pouvez-vous vérifier votre installation ? Avez-vous rencontré ces erreurs ?

Erreur enveloppée I18n::InvalidLocaleData : impossible de charger les traductions depuis /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) : clé inattendue lors de l’analyse d’un bloc de mappage à la ligne 3, colonne 5>

Il y a une guillemet supplémentaire qui devrait être supprimé.

private_replies_enabled : "Activer le plugin "Réponses privées."
2 « J'aime »

Merci de l’avoir signalé ! J’ai appliqué une correction.

3 « J'aime »

Salut,
Cela ne s’installe pas depuis l’interface d’administration. Est-ce uniquement pour les hooks ?

L’erreur est la suivante :

about.json n'existe pas. Êtes-vous sûr qu'il s'agit d'un plugin Discourse ?
1 « J'aime »

Je ne connais pas ce message d’erreur. Il ne fait pas partie du code source de Discourse. Êtes-vous certain qu’il s’agit du message exact ?

Les plugins ne sont pas installés via l’interface d’administration non plus.
Veuillez consulter Install plugins on a self-hosted site.

2 « J'aime »

@RGJ
Mon entreprise, Haddee, souhaite vivement développer de nouvelles fonctionnalités pour ce plugin.
Je me demandais si vous pouviez y ajouter une licence afin de faciliter et de fluidifier les contributions.

Merci :slight_smile:

6 « J'aime »

Bon, cela a fonctionné avec l’installation via le système de hooks, en effet.
Je suppose qu’on ne peut pas l’installer depuis l’interface d’administration comme les thèmes et les extensions, car il comporte des fonctionnalités serveur. C’est d’ailleurs pour cela qu’on l’appelle un plug-in (il y a tellement de termes spécifiques et de façons différentes d’étendre ou de personnaliser Discourse qu’on peut facilement se perdre en tant que développeur).

Celui-ci semble propre et assez léger pour être facilement personnalisable.

Merci pour vos réponses :wink:

2 « J'aime »