Use bars for MCQ, add mean for int responses

This commit is contained in:
nemunaire 2022-09-01 19:11:26 +02:00
parent f0bd1b1e70
commit ab3c94119d

View File

@ -32,20 +32,24 @@
} }
let req_proposals = null; let req_proposals = null;
let req_responses = null; let req_responses = null;
let mean = null;
if (question.kind == "int") { if (question.kind == "int") {
req_responses = question.getResponses(); req_responses = question.getResponses();
req_responses.then((responses) => { req_responses.then((responses) => {
const values = [];
const proposal_idx = { }; const proposal_idx = { };
for (const res of responses) { for (const res of responses) {
if (proposal_idx[res.value]) { if (proposal_idx[res.value]) {
data.datasets[0].values[proposal_idx[res.value]] += 1; data.datasets[0].values[proposal_idx[res.value]] += 1;
values.push(Number(res.value));
} else { } else {
data.labels.push(res.value); data.labels.push(res.value);
data.datasets[0].values.push(1); data.datasets[0].values.push(1);
proposal_idx[res.value] = new String(data.labels.length - 1); proposal_idx[res.value] = new String(data.labels.length - 1);
} }
} }
mean = Math.trunc(values.reduce((p, e) => p + e) / values.length*10)/10;
}); });
} else { } else {
req_proposals = refreshProposals(); req_proposals = refreshProposals();
@ -74,7 +78,16 @@
<span>Récupération des réponses&hellip;</span> <span>Récupération des réponses&hellip;</span>
</div> </div>
{:then} {:then}
<Chart data={data} type="pie" maxSlices="9" /> {#if mean !== null}
<div class="text-center">
Moyenne représentative&nbsp;: <strong>{mean}</strong>
</div>
{/if}
{#if question.kind === "mcq"}
<Chart data={data} type="bar" />
{:else}
<Chart data={data} type="pie" maxSlices="9" />
{/if}
{/await} {/await}
{/await} {/await}
</div> </div>