Welcome to the LimeSurvey Community Forum

Ask the community, share ideas, and connect with other LimeSurvey users!

Une vue de synthèse graphique à l'issue d'un quizz

  • gn1000i100
  • gn1000i100's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
4 months 1 week ago - 2 months 2 weeks ago #265176 by gn1000i100
Votre version de LimeSurvey : 6.5.11
Votre propre serveur ou LimeSurvey Cloud : cloud pour l'instant, ma propre instance à terme j'imagine.
Thème :
par défaut
==================

Je souhaite, à l'issue d'une passation, présenter au passataire un récapitulatif avec plusieurs sous-scores sous forme de graphique (test de personnalité par exemple).
Je ne sais pas s'il y a quelque chose de prévu pour dans LimeSurvey, ou s'il faut que je fasse un plugin, ou l'interfacer avec un site pour gérer ça en externe, ou s'il vaut mieux que j'utilise un autre outil que LimeSurvey pour ça.

Avez-vous des suggestions ?

En amont, le/les questionnaires seront sous forme de questions à choix multiples avec chaque question qui alimente un score différent pour le résultat final. (et pour cette partie je ne sais pas non-plus s'il y a une bonne façon de faire dans LimeSurvey)
Last edit: 2 months 2 weeks ago by gn1000i100.

Please Log in to join the conversation.

  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • LimeSurvey Community Team & Official Partner
  • LimeSurvey Community Team & Official Partner
More
4 months 1 week ago #265187 by DenisChenu
Replied by DenisChenu on topic Une vue de synthèse à l'issue d'un quizz
C'est faisable avec limesurvey + huile de coude + une libraire de génération d egraphique en JS ( www.chartjs.org/ par exemple)

Quelques examples
chartjs : forums.limesurvey.org/forum/can-i-do-thi...nd-limesurvey#251759
des calculs : forums.limesurvey.org/forum/can-i-do-thi...nd-reporting?start=0

Pour les calculs : www.limesurvey.org/manual/ExpressionScri...Answers,_and_Reports

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member. - Professional support - Plugins, theme and development .
I don't answer to private message.
The following user(s) said Thank You: gn1000i100

Please Log in to join the conversation.

  • gn1000i100
  • gn1000i100's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
2 months 3 weeks ago - 2 months 3 weeks ago #266130 by gn1000i100
Replied by gn1000i100 on topic Une vue de synthèse à l'issue d'un quizz
Pour le graphique via chartjs ou autre, vaut-il mieux que je l'intègre dans une zone de texte personnalisé incluant du JavaScript, ou sous forme d'un "chart_type" dédié ?

Et dans ce dernier cas serait-il pertinent d'ajouter ce chart_type sour forme de plugin ?
Y a-t-il déjà un plugin qui ajoute un chart_type dont je pourrais m'inspirer ?

Pour l'instant, je tente via une question équation qui me fait le calcul de quotation que je souhaite d'afficher le résultat en graphique via la partie script de la question équation.

Cela me donne en source de la partie question :
Code:
<p id="rawScore">{score.value}</p>
<p id="smartScore"> </p>
Et en partie Script :
Code:
const raw = parseInt(document.getElementById('rawScore').innerText)
const C = Math.floor(raw/1000000)
const B = Math.floor((raw-C*1000000)/1000)
const A = Math.floor((raw-C*1000000-B*1000)/1)
 
const quotation = {"answered":A+B+C,"score":[A,B,C]}
 
import {renderResult} from "/myLib.js"
 
document.getElementById('smartScore').innerHTML = renderResult(quotation)


Sauf que les accolades sont interprétées et converties par limeSurvey et du coup ça coince. Dans le code de la page générée, j'ai :
Code:
import <span class='em-expression em-haveerror'  ><span class='em-error' title=' ' ><span title='Variable non définie' class='em-var em-var-error' >renderResult</span></span></span> from "/myLib.js"

de plus, la balise script englobante n'est pas de type module donc j'imagine que mon import ne marcherait pas de toute façon.
  1. Ai-je moyen d'utiliser des accolades dans la partie script sans qu'elles ne soient converties ?
  2. Ai-je moyen d'importer une lib js de mon choix ?
PS : ci-joint le fichier .lss et la lib js que j'essaie de faire fonctionner ensemble.
Last edit: 2 months 3 weeks ago by gn1000i100.

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
2 months 2 weeks ago #266148 by Joffm
Voici quelques façons d'afficher des graphiques

a. HighCharts

b. GoogleCharts

c. chartjs


 

File Attachment:

File Name: limesurvey...8381.lss
File Size:51 KB

Volunteers are not paid.
Not because they are worthless, but because they are priceless

Please Log in to join the conversation.

  • gn1000i100
  • gn1000i100's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
2 months 2 weeks ago #266255 by gn1000i100
Je ne comprends pas, quand je teste votre exemple, il marche en effet, et ce qui le différencie à mes yeux, c'est que dans les questions qui affichent les graphiques, dans le code source est présent pas mal de choses dont du JavaScript, et, contrairement à mon cas, les accolades de ce JavaScript ne sont pas converties.

Dans mon cas, le code :
Code:
const raw = parseInt(document.getElementById('rawScore').innerText)
const C = Math.floor(raw/1000000)
const B = Math.floor((raw-C*1000000)/1000)
const A = Math.floor((raw-C*1000000-B*1000)/1)
 
const quotation = {"answered":A+B+C,"score":[A,B,C]}
 
import {renderResult} from "/myLib.js"
 
document.getElementById('smartScore').innerHTML = renderResult(quotation)

Est convertie en  :
Code:
const raw = parseInt(document.getElementById('rawScore').innerText)
const C = Math.floor(raw/1000000)
const B = Math.floor((raw-C*1000000)/1000)
const A = Math.floor((raw-C*1000000-B*1000)/1)
 
const quotation = <span class='em-expression em-haveerror'  ><span class="em-var-string">"answered"</span><span class='em-error' title=' ' ><span title="Syntaxe non pris en charge"> : </span></span><span class='em-error' title=' ' ><span title='Variable non définie' class='em-var em-var-error' >A</span></span><span> + </span><span class='em-error' title=' ' ><span title='Variable non définie' class='em-var em-var-error' >B</span></span><span> + </span><span class='em-error' title=' ' ><span title='Variable non définie' class='em-var em-var-error' >C</span></span>, <span class="em-var-string">"score"</span><span class='em-error' title=' ' ><span title="Syntaxe non pris en charge"> : </span></span><span class='em-error' title=' ' ><span title="Syntaxe non pris en charge"> [ </span></span><span class='em-error' title=' ' ><span title='Variable non définie' class='em-var em-var-error' >A</span></span>, <span class='em-error' title=' ' ><span title='Variable non définie' class='em-var em-var-error' >B</span></span>, <span class='em-error' title=' ' ><span title='Variable non définie' class='em-var em-var-error' >C</span></span><span class='em-error' title=' ' ><span title="Syntaxe non pris en charge"> ] </span></span></span>
 
import <span class='em-expression em-haveerror'  ><span class='em-error' title=' ' ><span title='Variable non définie' class='em-var em-var-error' >renderResult</span></span></span> from "/myLib.js"
 
document.getElementById('smartScore').innerHTML = renderResult(quotation)

Comment puis-je désactiver ce comportement ? (cette conversion)

Please Log in to join the conversation.

  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • LimeSurvey Community Team & Official Partner
  • LimeSurvey Community Team & Official Partner
More
1 month 3 weeks ago #266451 by DenisChenu
Ajouyer un espace ou un saut de ligne après les accolades

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member. - Professional support - Plugins, theme and development .
I don't answer to private message.

Please Log in to join the conversation.

Moderators: Nickkoholchtpartner

Lime-years ahead

Online-surveys for every purse and purpose