Vorrei aggiungere tutti i membri in un nuovo gruppo, ma quando provo a copiare e incollare un lungo elenco di nomi utente separati da una virgola, ricevo un errore.
Funziona quando provo a importare 100, ma ho 40.000 membri da aggiungere…
Sì, non sono sicuro che l’aggiunta in blocco dell’interfaccia utente supporti migliaia di utenti. Penso che tu possa farlo creando un nuovo gruppo, quindi utilizzando la console Rails per aggiungere utenti con trust_level: 0 a quel gruppo. Se decidi di seguire questa strada, assicurati prima di eseguire un backup.
Perché? Quale problema stai cercando di risolvere? Hai intenzione di rimuoverne alcuni in seguito? Perché non usare semplicemente trust_level_0 o trust_level_1? È probabile che, qualunque cosa tu stia cercando di fare, aggiungere tutti gli utenti a un gruppo non sia un buon modo per risolvere il problema.
Puoi farlo da rails. Penso che questo funzionerebbe.
group=Group.find_by_name('my_group')
User.all.each do |user|
GroupUser.create!(user_id: user.id, group_id: group.id)
end
Ho scritto un plugin che potrebbe aiutare, anche se non è ben testato e qualcuno che ci ha provato ha avuto problemi. Se hai un budget o sei coraggioso, puoi contattarmi.
Vorrei menzionare in un argomento (e notificare via email) tutti i membri. Funzionerà con il gruppo di livello Trust_level_0? Idealmente preferirei creare un nuovo gruppo per personalizzare il nome del gruppo.
Forse basta avere una categoria annunci e impostare tutti per monitorare quella categoria?
Puoi aggiungere tutti da rails come ho suggerito, ma questo non aggiungerà nuovi utenti.
Forse dai un’occhiata al plugin di automazione e all’appartenenza ai gruppi tramite badge. Sembra che tu possa creare un badge personalizzato che aggiunga gli utenti con quel badge al gruppo: Discourse Automation
Il numero massimo di utenti che puoi aggiungere contemporaneamente al modulo Aggiungi utenti di un gruppo è 1000. Guardando il codice, sembra che dovresti ricevere un messaggio di errore simile a questo se tenti di aggiungerne di più:
“Non più di 1000 utenti possono essere aggiunti contemporaneamente.”
Deve esserci una sorta di limite, altrimenti Discourse rischia di generare un errore non gestito. Per aggirare il limite, mi piace l’approccio del Plugin di automazione che Jay ha suggerito.
Perché non usare l’interfaccia incapsulata group.add(user)? Non ci sarebbero potenziali problemi con la manipolazione diretta di ActiveRecord in questo modo?
Sono abbastanza sicuro che questa sia la soluzione migliore (e più semplice) per il caso d’uso di @kam44.
Ma è molto utile sapere come aggiungere persone a un gruppo dalla console Rails: questo tornerà utile per unire gruppi numerosi, cosa che ho dovuto fare in alcune occasioni!