| Riepilogo | Discourse Member Application ti permette di gestire un processo di candidatura strutturato per i futuri membri prima che si uniscano alla tua comunità Discourse. | |
| Link al Repository | R23DPrinting-group / discourse-member-application · GitLab | |
| Guida all’Installazione | Come installare i plugin in Discourse |
discourse-member-application — Un Sistema di Candidatura Pre-Invito per Comunità Private
discourse-member-application ti permette di gestire un processo di candidatura strutturato per i futuri membri prima che si uniscano alla tua comunità Discourse. I candidati compilano un modulo pubblico personalizzabile in /apply, gli amministratori revisionano le candidature e le approvano o respingono, e i candidati approvati ricevono automaticamente un link di invito privato.
GitLab: R23DPrinting-group / discourse-member-application · GitLab
La Storia
Gestisco una comunità privata che utilizza la modalità solo su invito di Discourse. Gestivamo le candidature dei membri manualmente: un modulo Google, un foglio di calcolo, copia e incolla manuale dei link di invito. Funzionava, ma non era scalabile e si sentiva disconnesso dalla comunità stessa.
Ho cercato un plugin per Discourse che potesse gestire le candidature pre-invito. Non ne ho trovato uno adatto. Quindi ho costruito questo.
Demo
Caratteristiche
Modulo di Candidatura Personalizzabile
Il modulo è creato interamente tramite la scheda Campi nel pannello di amministrazione: non è necessario scrivere codice. Tipi di campi supportati: testo, area di testo, sì/no, radio, gruppo di caselle di controllo e casella di controllo. I campi supportano etichette, suggerimenti, obbligatorio/opzionale, abilita/disabilita e visibilità condizionale (mostra un campo solo quando un altro campo ha un valore specifico).
Dashboard Amministratore
Revisiona e gestisci tutte le candidature da una pagina dedicata del plugin. Filtra per stato (In attesa / Approvato / Respinto / Risolto), cerca per email o nome utente e scorri elenchi lunghi. Visualizza i dettagli completi della candidatura, aggiungi note private per gli amministratori e approva o respingi singolarmente o in blocco.
Flusso di Approvazione
L’approvazione di una candidatura genera un invito Discourse monouso e lo invia via email al candidato. Il rifiuto invia un’email di rifiuto personalizzabile con feedback opzionale. Quando il candidato riscatta il suo invito e crea un account, lo stato della candidatura viene aggiornato automaticamente a “Risolto”. I membri approvati possono opzionalmente essere aggiunti automaticamente a un gruppo Discourse.
Analisi
La scheda Analisi mostra statistiche di riepilogo (totale candidature, tasso di approvazione, tempo medio di revisione), un grafico di tendenza di 12 settimane sulle sottomissioni rispetto alle approvazioni e un imbuto di conversione da inviato → approvato → risolto.
Notifiche Amministratore
Quando viene inviata una nuova candidatura, viene inviata una messaggio privato agli username configurati (o a tutti gli amministratori se lasciato vuoto).
UX Configurabile
- Testo introduttivo in alto nel modulo (supporta markdown)
- Pagina di successo in
/apply/successdopo l’invio con un messaggio configurabile (supporta markdown) - Pulsante “Candidati per unirti” nella pagina di accesso e nella homepage che richiede l’accesso (attivabile/disattivabile)
- Scadenza della candidatura: rifiuto automatico delle candidature in attesa dopo un numero configurabile di giorni
Modelli Email Modificabili
Sia l’email di conferma dell’invio che l’email di rifiuto sono modificabili tramite Amministrazione → Personalizza → Modelli Email: non sono necessarie modifiche al codice.
Sicurezza
Limitazione della frequenza (5 invii per IP all’ora), rilevamento dei duplicati (blocca la ripresentazione con email o nome utente in attesa/approvato e blocca email/nomi utente già registrati) e inviti monouso.
Configurazione
Installazione
Aggiungi al tuo /var/discourse/containers/app.yml:
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://gitlab.com/r23dprinting-group/discourse-member-application.git
Poi ricostruisci:
cd /var/discourse && ./launcher rebuild app
Configurazione del Tuo Modulo
Dopo l’installazione, vai su Amministrazione → Plugin → Member Application → Campi per costruire il tuo modulo di candidatura.
Il plugin viene fornito con questi campi predefiniti (tutti modificabili o eliminabili):
- Nome utente desiderato
- Raccontaci qualcosa su di te
- Come hai sentito parlare di noi?
- Fai attualmente parte di altre comunità online simili? (sì/no)
- Se sì, quali? (condizionale — mostrato solo se sopra è Sì)
- Dichiarazioni dei fornitori (gruppo di caselle di controllo)
- Conferma di onestà (casella di controllo — campo di sistema, non eliminabile)
Usa il pulsante Aggiungi campo per creare nuovi campi. Usa le frecce su/giù per riordinare. Per rendere un campo condizionale, modificalo e usa la sezione “Mostra solo quando” per selezionare un campo padre e un valore di attivazione.
Flusso di Lavoro
- Il futuro membro visita il tuo sito e clicca su Candidati per unirti (o naviga direttamente a
/apply) - Compila il modulo e invia: non è richiesto un account
- Gli amministratori ricevono una notifica tramite messaggio privato
- L’amministratore revisiona la candidatura in Amministrazione → Plugin → Member Application → Candidature
- L’amministratore approva → il candidato riceve un’email di invito con un link monouso
- Il candidato riscatta l’invito, crea il proprio account e lo stato della candidatura viene aggiornato a Risolto
Impostazioni
| Nome | Descrizione |
|---|---|
member_application_enabled |
Abilita o disabilita il modulo di candidatura in /apply |
member_application_notify_usernames |
Username separati da virgola da notificare via PM per nuovi invii. Lascia vuoto per notificare tutti gli amministratori. |
member_application_invite_group |
Nome del gruppo da aggiungere all’invito quando si approva (lascia vuoto per saltare) |
member_application_expiry_days |
Rifiuto automatico delle candidature in attesa dopo questo numero di giorni (0 = mai) |
member_application_expiry_notify |
Invia email di rifiuto quando le candidature scadono automaticamente |
member_application_show_apply_button |
Mostra un pulsante “Candidati per unirti” nella pagina di accesso e nella homepage che richiede l’accesso |
member_application_apply_button_text |
Etichetta per il pulsante Candidati per unirti (predefinito: “Candidati per unirti”) |
member_application_intro_text |
Testo introduttivo mostrato in alto nel modulo di candidatura. Supporta markdown. Lascia vuoto per nascondere. |
member_application_success_message |
Messaggio mostrato nella pagina /apply/success dopo l’invio. Supporta markdown. |
Note
- Indipendente dalla comunità: tutto il testo predefinito dei campi è configurabile tramite la scheda Campi
- Funziona con la modalità
login_required/ solo su invito di Discourse - Licenza MIT
- Testato su Discourse 2026.3.0
Segnalazioni di problemi, PR e richieste di funzionalità benvenute su GitLab.