From f547fa1b96182bf6344656e8b07930a54e3eab36 Mon Sep 17 00:00:00 2001 From: matt Date: Fri, 22 Apr 2022 04:06:50 +0000 Subject: [PATCH] Implement class stats --- routes/singleClass.js | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/routes/singleClass.js b/routes/singleClass.js index 3f4c0f5..9a909e4 100644 --- a/routes/singleClass.js +++ b/routes/singleClass.js @@ -15,6 +15,19 @@ router.get('/:id', async (req, res) => { const recentTests = await c.getTests({ range: 'before' }); const testCount = recentTests.length + upcomingTests.length; + const trs = (await Promise.all(recentTests.map(async t => { + if (req.session.userType === 'account') + return t.getAveragePercentage(); + + const tr = (await t.getTestResults()) + .filter(tr => tr.student.id === req.session.userId); + + return tr?.[0]?.percentage; + }))).filter(tr => typeof tr !== 'undefined'); + + const averagePercentage = trs + .reduce((a, b) => a + b, 0) / trs.length; + return res.render('class', { ...req.hbsContext, title: `Stratos - ${c.name}`, @@ -46,12 +59,10 @@ router.get('/:id', async (req, res) => { (upcomingTests.length !== 1 ? 's' : '') }, { - value: '72%', - text: 'Average percentage' - }, - { - value: '50%', - text: 'Last percentage' + value: `${Math.round(averagePercentage)}%`, + text: (req.session.userType !== 'account' ? + 'Your' : 'Class') + + ' average percentage' } ] });