Discourse Private Antworten

Github: GitHub - communiteq/discourse-private-replies

Dieses Plugin blendet Themenantworten für alle außer dem Themenersteller und dem Autor des Beitrags aus.

Anwendungsfälle

Dies kann beispielsweise für Hausaufgaben verwendet werden, bei denen der Lehrer ein Thema eröffnet und eine Aufgabe postet, und alle Schüler einen Beitrag mit ihren Antworten verfassen. Wenn alle ihre Arbeit eingereicht haben, kann der Lehrer die Antworten freigeben, damit die Schüler sie diskutieren können.
Ein zweiter Anwendungsfall kann eine Auktion sein, bei der etwas zum Verkauf angeboten wird. Leute können ihr Gebot posten und wenn der Verkauf abgeschlossen ist, kann der Themeneigentümer alle Gebote offenlegen, um der Community zu zeigen, dass alles nach den Regeln verlaufen ist.

Verwendung

Nach der Installation und Aktivierung des Plugins können Sie die Funktionalität des Plugins pro Thema aktivieren.

Wenn Sie der Themenersteller sind, sehen Sie unten im Thema eine neue Schaltfläche.

button

Durch Drücken dieser Schaltfläche haben Sie die Funktion „Private Antworten“ für dieses Thema aktiviert.

Über dem Thema erscheint ein Banner und Folgendes geschieht:

  • Personen können nur Beiträge sehen, die von ihnen selbst, vom Themeneigentümer und von Benutzern in ausgewählten Gruppen erstellt wurden.
  • Nur der Themeneigentümer kann alle Beiträge sehen.

banner

Durch erneutes Drücken der Schaltfläche wird das Thema wieder normal.

Das Plugin ermöglicht bei Aktivierung private Antworten für alle Themen. Wenn jedoch die Einstellung private replies on selected categories only aktiviert ist, kann das Plugin pro Kategorie in den Sicherheitseinstellungen der Kategorie aktiviert werden.

Im selben Bildschirm finden Sie auch die Einstellung, um private Antworten standardmäßig für alle neuen Themen in dieser Kategorie zu aktivieren. Dies ist besonders praktisch, wenn Themen per E-Mail eingereicht werden.

Einstellungen

  • private_replies_participants_can_see_all Wenn aktiviert, kann jeder, der am Thema teilgenommen hat, alle Antworten sehen
  • private_replies_min_trust_level_to_see_all Personen mit dieser Vertrauensstufe oder höher können alle Antworten sehen
  • private_replies_groups_can_see_all Benutzer in diesen Gruppen können immer alle Antworten sehen (Standard: staff)
  • private_replies_see_all_from_groups Beiträge von Benutzern in diesen Gruppen sind für alle sichtbar (Standard: staff)
  • private_replies_topic_starter_primary_group_can_see_all Benutzer in derselben primären Gruppe wie der Themenersteller können alle Antworten sehen

Einschränkungen

Das Plugin deaktiviert die folgenden Möglichkeiten, den Beitragsinhalt abzurufen:

  • Themenansicht (d. h. die normale Art, Beiträge anzuzeigen)
  • Benutzerprofil - Aktivität
  • Suche
  • Rohdaten (/raw/topic_id/post_id)

Sie können jedoch immer noch herausfinden, wer im Thema gepostet hat:

  • Die Symbole in der Themenliste zeigen immer noch an, wer im Thema gepostet hat.
  • Sie können am unteren Rand des Themas auch sehen, dass „Benutzer xxx antwortet“.
  • Die Themen sind auch im Benutzerprofil - Zusammenfassung sichtbar.

All dies gibt jedoch nicht den Inhalt des Beitrags preis.

Hintergrund:

Meine Lebensgefährtin ist Lehrerin (Altgriechisch und Klassisches Latein) und nutzt Discourse seit vielen Jahren in ihren Kursen. Sie nutzt es hauptsächlich, um Aufgaben an ihre Schüler zu verteilen und sie anschließend zu besprechen. Alle Aufgaben werden jedoch auf Papier während ihrer Unterrichtsstunden abgegeben.
Bis jetzt – da die Schulen wegen der Corona-Panik geschlossen sind, stellt sie auf 100% Online-Unterricht um, einschließlich der Aufgaben. All diese Schüler schicken ihr also derzeit ihre Arbeiten per E-Mail. Das ist sehr suboptimal, da es ihr ziemlich viel Verwaltungsaufwand bereitet (und ich kann Ihnen sagen, sie ist nicht sehr gut in solchen Dingen :wink: ).
Wir diskutierten einige Optionen und sie sagte: „Warum kann ich kein Thema haben, bei dem die Leute nur meine Beiträge (d. h. die Beiträge des Themenerstellers) und ihre eigenen Beiträge sehen können? Das würde es mir ermöglichen, eine Aufgabe als Thema zu posten und jeden Schüler darunter seine Antworten posten zu lassen, ohne alle anderen Antworten sehen zu können. Wenn dann jeder seine Arbeit eingereicht hat und es Zeit zum Diskutieren ist, möchte ich auf eine Schaltfläche drücken können, um den Schleier zu lüften und alle Beiträge im Thema für alle sichtbar zu machen, damit sie die Arbeit des anderen sehen und diskutieren können.“
Ja – brillant! (deshalb liebe ich sie). Also habe ich ein Plugin dafür gemacht. Vorherige Diskussion hier: Topic replies invisible until topic owner decides to reveal them?

77 „Gefällt mir“

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

10 „Gefällt mir“

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

15 „Gefällt mir“

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 „Gefällt mir“

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 „Gefällt mir“

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 „Gefällt mir“

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 „Gefällt mir“

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 „Gefällt mir“

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 „Gefällt mir“

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 „Gefällt mir“

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 „Gefällt mir“

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 „Gefällt mir“

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

1 „Gefällt mir“

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

2 „Gefällt mir“

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 „Gefällt mir“

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

3 „Gefällt mir“

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 „Gefällt mir“

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 „Gefällt mir“

@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 „Gefällt mir“

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 „Gefällt mir“