1
0
mirror of https://github.com/matt-fidd/stratos.git synced 2026-01-01 18:39:32 +00:00

Implement class stats

This commit is contained in:
2022-04-22 04:06:50 +00:00
parent ded1481c8a
commit f547fa1b96

View File

@@ -15,6 +15,19 @@ router.get('/:id', async (req, res) => {
const recentTests = await c.getTests({ range: 'before' }); const recentTests = await c.getTests({ range: 'before' });
const testCount = recentTests.length + upcomingTests.length; 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', { return res.render('class', {
...req.hbsContext, ...req.hbsContext,
title: `Stratos - ${c.name}`, title: `Stratos - ${c.name}`,
@@ -46,12 +59,10 @@ router.get('/:id', async (req, res) => {
(upcomingTests.length !== 1 ? 's' : '') (upcomingTests.length !== 1 ? 's' : '')
}, },
{ {
value: '72%', value: `${Math.round(averagePercentage)}%`,
text: 'Average percentage' text: (req.session.userType !== 'account' ?
}, 'Your' : 'Class') +
{ ' average percentage'
value: '50%',
text: 'Last percentage'
} }
] ]
}); });