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
1 changed files with 14 additions and 1 deletions

View File

@ -32,20 +32,24 @@
}
let req_proposals = null;
let req_responses = null;
let mean = null;
if (question.kind == "int") {
req_responses = question.getResponses();
req_responses.then((responses) => {
const values = [];
const proposal_idx = { };
for (const res of responses) {
if (proposal_idx[res.value]) {
data.datasets[0].values[proposal_idx[res.value]] += 1;
values.push(Number(res.value));
} else {
data.labels.push(res.value);
data.datasets[0].values.push(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 {
req_proposals = refreshProposals();
@ -74,7 +78,16 @@
<span>Récupération des réponses&hellip;</span>
</div>
{: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}
</div>