Für unseren Laufverein koordiniere ich eine ganzjährige Herausforderung, die auch ein Team-Element enthält. Für jedes Team einer 10-Jahres-Altersgruppe erstelle ich eine Discourse-Gruppe, damit sie mit @ erwähnt werden können und möglicherweise eigene Gespräche führen können – obwohl ich sehr bezweifle, dass das jemand herausfinden wird. Ich habe also sieben Gruppen für jedes Altersgruppen-Team und muss diese manuell aktualisieren, sobald sich Personen anmelden.
Außerdem möchte ich eine übergeordnete Gruppe haben, die alle Teilnehmer der Herausforderung umfasst. Es wäre viel einfacher, wenn die größere „Challengers“-Gruppe lediglich die Untergruppen für 19 und jünger, 20–29, 30–39 usw. enthalten würde. So müsste ich nur die Untergruppen verwalten, und die Änderungen würden automatisch in die übergeordnete Gruppe übernommen.
Gibt es (oder könnte es geben) eine Möglichkeit, dies umzusetzen, oder bin ich darauf angewiesen, jeden Benutzernamen aus den Untergruppen manuell einzutippen? (Insgesamt werden es mehrere hundert Personen sein, und dies ist eine wöchentliche Aufgabe.)
Ich bin verwirrt durch den Verweis auf ‘Bulk Add to Group’, da er meiner Ansicht nach nicht in der Benutzeroberfläche erscheint – die Screenshots aus dem von dir verlinkten Thema von 2015 stimmen nicht mit dem überein, was ich jetzt sehe. Ist das einfach dasselbe wie das Verwenden des Dialogs ‘Mitglieder hinzufügen’ innerhalb einer Gruppe?
Und wie kann ich eine Liste der Mitglieder einer Gruppe kopieren, um sie dann bulkweise zu einer anderen hinzuzufügen? Der beste Workflow, den ich mir derzeit ausdenken kann, besteht darin, den Text der Mitgliederseite zu kopieren und einen stilbewussten grep-Befehl (in Nisus Writer Pro) zu verwenden, um die Benutzernamen zu extrahieren. Machbar, aber nicht gerade einfach.
Es gibt hier auf Meta zahlreiche Hinweise auf die Funktion „Gruppenmitglieder im Bulk hinzufügen“, aber ich sehe sie auf https://discourse.example.org/admin/groups/bulk nicht mehr aktiviert, nur eine leere Seite (ich habe das an ein paar verschiedenen Seiten überprüft, auf denen ich Admin-Rechte habe). Siehst du dort etwas, @adamengst?
Entschuldigung für die Verzögerung – ich habe die Benachrichtigung übersehen. Nein, ich habe überhaupt keine Seite unter https://forum.fingerlakesrunners.org/admin/groups/bulk (404), und die Hauptseite für Gruppen befindet sich unter FLRC Forum. Ich kann nirgendwo eine Erwähnung von „Bulk Add
Ich vermute, das ist eine etwas versteckte Funktion, aber du kannst die Massen-Einladungs-Funktion nutzen, um bestehende Benutzer zu Gruppen hinzuzufügen. Bereite einfach eine CSV-Datei mit der E-Mail-Adresse und der Gruppe vor, wie im Modal erklärt, und lade sie hoch. Die Benutzer erhalten keine E-Mail.
@tobiaseigen Aha! Weißt du zufällig, ob das Gruppen-Updates für bestehende Benutzer verarbeitet, falls die betreffende E-Mail-Adresse bereits ein Konto hat?
Danke! Das kommt der Sache schon näher. Ich muss jedoch anmerken, dass die Orientierung an E-Mail-Adressen oft schlecht funktioniert, da viele Personen mehrere Adressen haben. Daher muss ich im Vorfeld prüfen, ob ich diejenige Adresse einlade, die mit einem Konto verknüpft ist, oder eine andere, die verwirrend sein könnte (und sie möglicherweise mit einem zweiten Konto versieht).
Ich weiß nicht, wie die zugrunde liegende Infrastruktur funktioniert, aber es scheint am einfachsten zu sein, Gruppen zu erlauben, Verweise auf andere Gruppen zu enthalten.
Sie könnten jederzeit einen Benutzerexport durchführen und die exportierte CSV-Datei nutzen, um eine neue Liste zu erstellen, die Sie dann über die Funktion für Masseneinladungen wieder importieren. Es klingt so, als müssten Sie dies nur einmal tun, um das System mit Ihren bestehenden Benutzern einzurichten, und danach manuell vorgehen, wenn neue Personen beitreten oder eine Änderung an ihrer Altersgruppe vornehmen.
Vielleicht gibt es einen Fall für benutzerdefinierten Code, um dies für Ihre Community halbautomatisch zu erledigen – Sie könnten eine Anfrage in Marketplace stellen, wenn Sie ein Budget haben.
Guter Punkt beim Benutzer-Export – ich habe nicht daran gedacht, dass man damit die Liste mit Accounts füllen kann, um zu starten. Ich werde weiter darüber nachdenken und sehen, wie es sich entwickelt.
Hierarchical groups (groups as members of groups) would have the additional advantage of automatically removing members from inherited groups.
To implement such a feature “by hand”, you would have to remember whether a group membership was inherited by a hierarchically higher group or set directly.
Could you comment on using an external user directory service (ldap) to implement a hierarchical group function?
Seit ich diesen Thread gestartet habe, dachte ich, ich sage einfach meine Meinung und sage, dass meine Anforderung für hierarchische Gruppen immer noch absolut relevant ist.
Die Funktion „Massenhafte Einladung zur Gruppe“ kommt einfach nicht zum Einsatz, da ich in meinem Fall Personen zu spezifischen altersbasierten Gruppen und einer Gesamtgruppe hinzufüge, die alle altersbasierten Gruppen über einen Zeitraum von 4 Monaten umfasst, sobald sie sich in einem anderen System registrieren.
Ich werde sehen, ob mein Entwickler den Prozess dieses Jahr automatisieren kann, da ich jetzt weiß, wie unglaublich mühsam es ist, ihn wöchentlich von Hand zu erledigen.
Ja, tatsächlich konnte mein Entwickler Daten von Webscorer, das wir für die Rennanmeldung verwenden, mit Discourse-Gruppen synchronisieren. Es erfordert, dass die Namen übereinstimmen, aber er hat eine Admin-Seite erstellt, die anzeigt, wann dies nicht der Fall ist.
Es gibt also keine Hierarchie, aber wir füllen automatisch mehrere Gruppen, was den Hauptbedarf, den ich hatte, beseitigt.
Es ist Open-Source-Code, daher kann ich ihn wahrscheinlich teilen, wenn jemand daran interessiert ist, zu sehen, wie er funktioniert.
Ich habe auch eine direkte Anfrage hierfür erhalten. Wenn also jemand den Code von @SteveDesmond.ca zum Schreiben in Discourse-Gruppen ansehen möchte, ist er verfügbar unter:
Hier ist eine Gliederung für den spezifischen Code, den Adam zuvor erwähnt hat:
(L36) Alle Benutzer im externen System abrufen
(L37) Alle Benutzer in Discourse abrufen
(L38-39) Alle Mitglieder der fraglichen Gruppen abrufen (global ist in diesem Fall die „Supergruppe“)
(L46-78) Für jeden Benutzer im externen System prüfen, ob er in Discourse existiert, und zuordnen, welchen Gruppen er bereits angehört und zu welchen er hinzugefügt werden muss