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:
@@ -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'
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user