Les réponses au sujet sont-elles invisibles tant que le propriétaire ne décide pas de les révéler ?

Donc, mon conjoint est enseignant (grec ancien et latin classique) et utilise Discourse dans ses cours depuis plusieurs années. Elle l’utilise principalement pour distribuer des devoirs à ses élèves et les discuter ensuite. Cependant, tous les devoirs sont actuellement remis sur papier pendant ses cours.

Jusqu’à présent — puisque les écoles sont fermées en raison de la panique liée au coronavirus, elle passe à un enseignement entièrement en ligne, y compris pour les devoirs. Ainsi, tous ces élèves envoient actuellement leurs travaux par e-mail. C’est très sous-optimal, car cela lui demande beaucoup de travail administratif (et je peux vous dire qu’elle n’est pas très douée pour ce genre de choses ;)).

Nous avons discuté de quelques options et elle a dit : « Pourquoi ne pas avoir un sujet où les gens ne peuvent voir que mes publications (c’est-à-dire les publications de l’auteur du sujet) et leurs propres publications ? Cela me permettrait de publier un devoir sous forme de sujet et d’avoir chaque élève publier ses réponses en dessous, sans pouvoir voir les réponses des autres. Ensuite, lorsque tout le monde a soumis son travail et qu’il est temps de discuter, je veux pouvoir appuyer sur un bouton pour lever le voile et rendre toutes les publications du sujet visibles pour tout le monde, afin qu’ils puissent tous voir et discuter des travaux des autres. »

Oui — génial ! (C’est pourquoi je l’aime).

Je vais créer un plugin pour cela, probablement en m’appuyant sur le plugin « solved » pour l’interrupteur magique (rendre tout visible dès que le sujet est résolu). Mais avant de commencer, je voulais avoir votre avis, obtenir des retours et peut-être recueillir des idées pour rendre cela encore meilleur.

Des indices et des conseils sur la manière d’implémenter cela efficacement seraient également les bienvenus — car il existe de nombreuses façons de récupérer un sujet, et si un seul élève trouve un moyen de contourner cela, alors tout devient inutile.

Est-ce que tout ce qui concerne un sujet passe par un TopicView ? Pourrais-je exploiter username_filters ? Ou construire quelque chose de similaire ? Ou bien un guardian est-il une meilleure approche ?

Faites-moi part de votre avis !

18 « J'aime »

Cela dépend fortement des garanties de sécurité requises ici, mais étant donné que j’imagine que les étudiants sont assez malins, une solution purement CSS ne fonctionnera pas.

Maintenant, si une solution CSS ne fonctionne pas et que ces jeunes sont probablement des farceurs qui trouveront toutes les failles pour tricher.

Des expansions de backdoor [quote], et toutes sortes d’autres manigances peuvent se produire. Un simple correctif pour « peut voir le message » pourrait ne pas suffire.

Une façon très sécurisée de faire cela serait via des MP : les étudiants soumettent le contenu via un MP, puis une fois terminé… un « clic » déplace tous les MP vers le sujet. Propre… simple… sécurisé.

18 « J'aime »

Les solutions sont-elles des fichiers téléversés ou du texte Composer ?

Si ce sont des fichiers téléversés, l’utilisation de la nouvelle fonctionnalité Téléversements de médias sécurisés, couplée à un plugin modifiant la génération des URL temporaires pour les téléchargements des utilisateurs afin de n’en créer que de « valides » pour le personnel, pourrait fonctionner et constituer un changement minimal. Une fois le sujet résolu, étiqueté ou clos, l’URL temporaire revient à son état normal, permettant à tous de voir tout le contenu.

Il est également intéressant de pouvoir voir les soumissions des utilisateurs sans avoir accès au contenu de ces soumissions.

8 « J'aime »

Merci à vous deux pour vos retours et vos idées !

Le problème, c’est qu’elle a six classes différentes avec peut-être deux ou trois devoirs chacune en cours simultanément, ce qui fait environ 15 devoirs à gérer. Donc, ce ne sera pas si facile, je suppose.

Non, le CSS seul ne fonctionnera pas, c’est certain. D’un autre côté, ce ne serait pas un gros problème si cela était contourné une ou deux fois, tant que je n’ai pas à corriger des problèmes tous les jours.

C’est une idée vraiment géniale. Mais il s’agit surtout de texte dans l’éditeur, et elle ne veut pas obliger à tout transformer en téléchargements.

2 « J'aime »

Je vais modifier le titre puisque c’est la demande.

Mon intuition est que cela ressemble plus à un plugin de spoilers qu’à autre chose. Les spoilers ne seraient révélables que par le propriétaire du sujet.

4 « J'aime »

Le spoiler va être un peu délicat car il faudra alors protéger les routes /raw également.

Peut-être :

  • L’enseignant publie : « Pourquoi la guerre a-t-elle éclaté en Indochine »

  • L’élève crée un MP à lui-même avec le devoir, puis, une fois terminé, publie un lien dans le sujet. (Avantage : révisions, ne dérange pas l’enseignant)

  • L’enseignant peut alors fournir un « retour direct » dans le MP

  • Une fois tout noté, l’enseignant clique sur « Publier », ce qui copie le contenu brut du MP et remplace le lien vers le MP dans le sujet du devoir.

7 « J'aime »

Les gens demandent cela plusieurs fois par an, et la réponse est toujours : « Vous ne pouvez pas avoir de permissions spécifiques à un sujet. » Si vous parvenez à résoudre cela, je pense qu’il y aura un intérêt considérable.

6 « J'aime »

Eh bien, c’est un peu délicat. J’ai un peu bidouillé TopicView et PostGuardian, ce qui m’amène à 80 % sans trop d’effort, y compris avec /raw et des astuces pour modifier les numéros de citations de messages. Pour l’instant, je peux encore voir des messages que je ne devrais pas pouvoir voir via :

  • la recherche
  • l’activité des utilisateurs
  • les courriels de résumé

Il faut donc encore quelques correctifs. Pour le moment, ce sont les seules méthodes qui me viennent à l’esprit. Toute suggestion sur d’autres moyens d’accéder à un message est la bienvenue.

4 « J'aime »

Et c’est toujours la réponse. À mon avis, même poser cette question indique que la personne qui la pose n’a pas vraiment réfléchi à ce qu’elle cherche à accomplir, honnêtement.

Je ne suis pas contre un mode spoiler amélioré, cependant ; je pense que cela a du sens.

4 « J'aime »

Et si cela était mis en œuvre sous la forme de « messages privés créés par des utilisateurs réguliers » ?

2 « J'aime »

Chuchoter à qui ? Au propriétaire du sujet ? Alors il doit être rétrogradé des chuchotements.

4 « J'aime »

Il me reste encore à finaliser quelques petits détails, mais j’ai maintenant un plugin fonctionnel disponible sur GitHub - communiteq/discourse-private-replies · GitHub

Après avoir installé et activé le plugin, le propriétaire du sujet (ainsi que le personnel) verra un bouton supplémentaire en bas de chaque sujet intitulé Réponses privées.

Ce bouton permet d’activer ou de désactiver le mode « Réponses privées » pour le sujet.

Lorsque le mode Réponses privées est activé :

  • le propriétaire du sujet peut toujours voir tous les messages ;
  • tous les autres utilisateurs ne verront que les messages publiés par le propriétaire du sujet, le personnel et eux-mêmes.

Un tel sujet peut être identifié par une bannière en haut du sujet :

image

Lorsque le propriétaire du sujet décide de rendre les messages publics, il peut utiliser le même bouton en bas du sujet (désormais intitulé « Réponses publiques ») pour désactiver le mode Réponses privées. La bannière disparaîtra et tous les messages seront visibles par tous (en respectant bien sûr la sécurité de la catégorie).

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

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

Avertissement 1 :

Le plugin ne masque pas complètement qui a publié dans le sujet. Les avatars des utilisateurs dans la liste des sujets restent inchangés et les sujets sont également visibles dans le profil utilisateur - résumé. Cependant, ni l’un ni l’autre ne révèlent le contenu des messages.

Avertissement 2 :

Je ne sais pas s’il existe des moyens de récupérer le contenu des messages que j’aurais pu négliger. (Je dois encore tester, par exemple, si les résumés révèlent des informations). Mon conjoint va tester cela au cours des prochaines semaines et je n’ai aucun doute que ses élèves parviendront à trouver certaines failles intelligentes. Je ferai tout mon possible pour les combler dès que j’en serai informé. Les suggestions et conseils sont les bienvenus !

Je publierai une annonce dans la catégorie des plugins ainsi qu’un bon fichier README.md plus tard cette semaine. En attendant, j’aimerais beaucoup avoir vos retours !

9 « J'aime »

Quelles sont les implications en termes de performances ? De nombreux plugins tiers parviennent à ajouter des requêtes en N+1, N², N³, N^N… espérons que cela puisse être évité ici.

Ce serait également un plus si cela pouvait être activé ou désactivé par sujet, avec un impact nul sur les performances pour tous les autres sujets sauf ceux pour lesquels l’option est activée, plutôt que de devoir payer un prix global en permanence ?

7 « J'aime »

J’ai fait de mon mieux pour rendre les choses aussi efficaces que possible, c’est-à-dire évaluer aussi paresseusement que possible et sortir des filtres dès que possible.

Il y a absolument de la place pour de petites optimisations, comme mettre en cache les identifiants d’utilisateur du personnel et les identifiants des sujets protégés, mais je pense que j’ai plutôt bien fait pour une première version. Si quelqu’un n’est pas d’accord, n’hésitez pas à critiquer mon code.

9 « J'aime »