Sondaggi Discourse

|||
-|-|-|
:discourse2: | Riepilogo | Il plugin Discourse Surveys ti permette di creare sondaggi direttamente nei tuoi post del forum Discourse usando una semplice sintassi Markdown.
:hammer_and_wrench: | Link al Repository | \u003chttps://github.com/discourse/discourse-surveys\u003e
:open_book: | Guida all’Installazione | Come installare plugin in Discourse

Il plugin Discourse Surveys ti permette di creare sondaggi direttamente nei tuoi post del forum Discourse usando una semplice sintassi Markdown. Il plugin supporta attualmente una varietĂ  di tipi di domande come pulsanti radio, checkbox, menu a tendina, input numerici, aree di testo, valutazioni a stelle e valutazioni pollice su/giĂą.

Markdown Base del Sondaggio

Ecco un esempio base di Markdown per un sondaggio che include tutti i campi disponibili:

[survey name="awesome-survey-thumbs" title="Awesome Survey"]

[radio question="Choose any one option:"]
- cat
- dog
[/radio]

[checkbox question="Choose multiple options:"]
- red
- blue
- green
[/checkbox]

[dropdown question="Gender:"]
- Male
- Female
[/dropdown]

[number question="Rate this survey from 1 to 10:"]
[/number]

[textarea question="What is your feedback about xyz?" required="false"]
[/textarea]

[star question="How would you rate overall experience?"]
[/star]

[thumbs question="Were you satisfied with our services?"]
[/thumbs]

[/survey]

Rendering del Sondaggio

Di seguito è riportato un esempio di come il Markdown sopra viene renderizzato in Discourse:

Risultati del Sondaggio

Attualmente, questo plugin non dispone di alcuna interfaccia utente backend per visualizzare direttamente i risultati del sondaggio. Invece, puoi utilizzare le query di Data Explorer per recuperare e analizzare le risposte ai sondaggi. Ecco un esempio di query:

-- [params]
-- text :survey_name = survey

SELECT s.id, s.name, s.post_id, sf.question, COALESCE(sr.value, sfo.html) AS value, sr.user_id, sr.created_at as responded_at
FROM surveys s
JOIN survey_fields sf ON sf.survey_id = s.id
JOIN survey_responses sr ON sr.survey_field_id = sf.id
LEFT JOIN survey_field_options sfo ON sfo.id = sr.survey_field_option_id
WHERE s.name = :survey_name
ORDER BY s.id DESC

Ambito Futuro

Il plugin ha il potenziale per molti miglioramenti. Sentiti libero di unirti alla discussione e inviare pull request sul repository del plugin.

28 Mi Piace

Quindi gli utenti non possono vedere i risultati (a meno che non abbiano i diritti per utilizzare la query) e questo è totalmente per amministratori/personale di back-office?

3 Mi Piace

Sì, è corretto.

7 Mi Piace

Non sembra molto pratico :pianto:

3 Mi Piace

Necessaria opzione per pubblicare i risultati del sondaggio. Altrimenti è meglio usare più sondaggi.

3 Mi Piace

Ciao

Il Markdown di esempio viene visualizzato in un nuovo argomento come di seguito. Il mio Discourse è aggiornato all’ultima versione.

Quale potrebbe essere il problema?

Saluti

Ciao @ppcole,

Quanto sopra è ciò che viene mostrato nell’anteprima della composizione durante la creazione del sondaggio. Una volta creato l’argomento, verrà visualizzato correttamente come previsto.

Grazie Arpit. Ha funzionato. Attendo miglioramenti.

1 Mi Piace

Posso sapere se ci state lavorando ma senza reale prioritĂ ?

Sarebbe fantastico se questo progetto continuasse a essere sviluppato, ha un potenziale enorme.

Ho scoperto che la SQL sopra estraeva i risultati, ma non era in un formato facile da usare; in pratica richiederebbe una tonnellata di trasformazioni a livello di foglio di calcolo per consentire un’analisi utile.

Tuttavia, con un po’ di aiuto dall’IA generativa, sono stato in grado di produrre una query molto valida per Data Explorer. A causa di alcune limitazioni di Data Explorer, non è possibile renderla abbastanza dinamica da gestire una varietà di sondaggi; in pratica è necessaria una query su misura per ogni sondaggio.

Fortunatamente, l’IA generativa può renderlo piuttosto semplice. Ecco un prompt di esempio che probabilmente funzionerà nella maggior parte dei servizi di IA generativa (se non hai il plugin AI attivo) - basta inserire il tuo markdown del sondaggio e dovresti essere a posto:

Prompt IA Generativa per Produrre una Query SQL Personalizzata per un Sondaggio Specifico

Ho un sondaggio definito in formato markdown e ho bisogno di una query SQL per estrarre i risultati del sondaggio da un database Discourse utilizzando il plugin Data Explorer. Il sondaggio include vari tipi di domande come radio, dropdown, stella, checkbox, textarea, pollici e numero. Voglio che la query restituisca i risultati con ogni utente che ha una singola riga e ogni domanda che ha la propria colonna. Per le domande a scelta multipla, le risposte multiple devono essere concatenate in un’unica stringa.

Ecco il markdown del sondaggio:

Incolla qui il tuo markdown del sondaggio

Ecco la query originale utilizzata per ottenere i risultati del sondaggio:

-- [params]
-- text :survey_name = survey

SELECT s.id, s.name, s.post_id, sf.question, COALESCE(sr.value, sfo.html) AS value, sr.user_id, sr.created_at as responded_at
FROM surveys s
JOIN survey_fields sf ON sf.survey_id = s.id
JOIN survey_responses sr ON sr.survey_field_id = sf.id
LEFT JOIN survey_field_options sfo ON sfo.id = sr.survey_field_option_id
WHERE s.name = :survey_name
ORDER BY s.id DESC

Si prega di generare una query SQL che:

  • Codifichi in modo fisso il nome del sondaggio.
  • Utilizzi l’aggregazione condizionale per ruotare i dati, con ogni domanda come colonna.
  • Utilizzi STRING_AGG per le domande a scelta multipla per gestire risposte multiple.
  • Assicuri che l’output sia raggruppato per user_id e ordinato per user_id.
  • Sia formattato per leggibilitĂ  e includa commenti che spieghino la logica dove necessario.

Guida aggiuntiva per il plugin Data Explorer:

  • La query deve essere compatibile con il plugin Discourse Data Explorer, il che significa che non deve terminare con un punto e virgola.
  • Utilizza nomi di colonna come user_id per sfruttare le funzionalitĂ  di collegamento automatico all’interno di Data Explorer.
  • Evita l’uso di SQL dinamico, poichĂ© il plugin non lo supporta.
  • Assicurati che la query sia efficiente e ottimizzata per le prestazioni, poichĂ© potrebbe essere eseguita su grandi set di dati.
7 Mi Piace

Questo è un piccolo plugin eccellente che offre sorprendentemente molte funzionalità. Grazie per averlo creato.

@nathank ottimo lavoro sulla guida per costruire rapidamente query di risultati.

4 Mi Piace

L’ho installato sul mio sito self-hosted per provarlo, ed è davvero carino!

Mi rendo conto che questo è un anatema per Discourse, ma sarebbe utile se fosse possibile creare sondaggi che possano essere completati in modo anonimo, senza effettuare l’accesso. O almeno anonimizzare i risultati in modo che non siano associati a utenti specifici.

E naturalmente sì, la possibilità di visualizzare i risultati come si fa con i sondaggi senza dover ricorrere a Data Explorer sarebbe fantastica.

4 Mi Piace

Sì, ho riscontrato lo stesso problema. Speriamo ci sia una soluzione.

3 Mi Piace