From b0826063fe315e56bbad5d0347206a9bb5274538 Mon Sep 17 00:00:00 2001 From: matt Date: Fri, 22 Apr 2022 04:07:31 +0000 Subject: [PATCH] Implement test stats --- routes/singleTest.js | 55 ++++++++++++++++++++++++++------------------ 1 file changed, 33 insertions(+), 22 deletions(-) diff --git a/routes/singleTest.js b/routes/singleTest.js index 4078b83..3f710c8 100644 --- a/routes/singleTest.js +++ b/routes/singleTest.js @@ -12,11 +12,43 @@ router.get('/:id', async (req, res) => { const linkRoot = `/admin/test/${t.id}`; let results = await t.getTestResults(); + const resultCount = results.length; + + const averageScore = await t.getAverageScore(); + const averagePercentage = await t.getAveragePercentage(); + + const stats = [ + { + value: `${resultCount}/${t.class.studentIds.length}`, + text: 'Results submitted' + }, + { + value: `${averageScore}/${t.template.maxMark}`, + text: 'Average score' + }, + { + value: `${averagePercentage}%`, + text: 'Average percentage' + } + ]; if (req.session.userType === 'student') { results = results.filter(r => r.student.id === req.session.userId ); + + if (results.length) { + stats.push({ + value: results[0].mark - averageScore, + text: '+- Average score' + }); + + stats.push({ + value: `${results[0].percentage - + averagePercentage}%`, + text: '+- Average percentage' + }); + } } return res.render('test', { @@ -31,28 +63,7 @@ router.get('/:id', async (req, res) => { resultsLink: `${linkRoot}/results`, deleteLink: `${linkRoot}/delete`, testResults: results, - stats: [ - { - value: 19, - text: 'Results submitted' - }, - { - value: '30%', - text: 'Average score' - }, - { - value: 1, - text: 'Placeholder' - }, - { - value: '2', - text: 'Placeholder' - }, - { - value: '3', - text: 'Placeholder' - } - ] + stats: stats }); });