From 28ac0df5203537b2f3277e6c8adee361e355ddbd Mon Sep 17 00:00:00 2001 From: matt Date: Mon, 18 Apr 2022 15:00:50 +0000 Subject: [PATCH] Split out singleTest route and fix priorities for routes --- routes/class.js | 1 + routes/singleClass.js | 1 + routes/singleTest.js | 59 +++++++++++++++++++++++++++++++++++++++++++ routes/test.js | 49 +---------------------------------- 4 files changed, 62 insertions(+), 48 deletions(-) create mode 100644 routes/singleTest.js diff --git a/routes/class.js b/routes/class.js index 469393b..3ccbf49 100644 --- a/routes/class.js +++ b/routes/class.js @@ -81,6 +81,7 @@ router.all(/class\/(.{36})(\/.*)?/, async (req, res, next) => { }); module.exports = { + priority: 30, root: '/admin', router: router }; diff --git a/routes/singleClass.js b/routes/singleClass.js index bdb38ac..1bd0a4e 100644 --- a/routes/singleClass.js +++ b/routes/singleClass.js @@ -256,6 +256,7 @@ router.post('/:id/:userType(members|teachers)/:userId/remove', ); module.exports = { + priority: 50, root: '/admin/class', router: router }; diff --git a/routes/singleTest.js b/routes/singleTest.js new file mode 100644 index 0000000..597431a --- /dev/null +++ b/routes/singleTest.js @@ -0,0 +1,59 @@ +'use strict'; + +const express = require('express'); +const router = express.Router(); + +router.get('/:id', async (req, res) => { + const t = req.test; + const linkRoot = `/admin/test/${t.id}`; + + let results = await t.getTestResults(); + + if (req.session.userType === 'student') { + results = results.filter(r => + r.student.id === req.session.userId + ); + } + + return res.render('test', { + title: `Stratos - ${t.template.name}`, + current: 'Tests', + name: req.session.fullName, + testName: t.template.name, + class: t.class, + subject: t.class.subject.name, + maxMark: t.template.maxMark, + reportsLink: `${linkRoot}/reports`, + deleteLink: `${linkRoot}/delete`, + userType: req.session.userType, + 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' + }, + ] + }); +}); + +module.exports = { + priority: 50, + root: '/admin/test', + router: router +}; diff --git a/routes/test.js b/routes/test.js index 17772fb..102ab70 100644 --- a/routes/test.js +++ b/routes/test.js @@ -137,56 +137,9 @@ router.all(/test\/(.{36})(\/.*)?/, async (req, res, next) => { next(); }); -router.get('/test/:id', async (req, res) => { - const t = req.test; - const linkRoot = `/admin/test/${t.id}`; - - let results = await t.getTestResults(); - - if (req.session.userType === 'student') { - results = results.filter(r => - r.student.id === req.session.userId - ); - } - - return res.render('test', { - title: `Stratos - ${t.template.name}`, - current: 'Tests', - name: req.session.fullName, - testName: t.template.name, - class: t.class, - subject: t.class.subject.name, - maxMark: t.template.maxMark, - reportsLink: `${linkRoot}/reports`, - deleteLink: `${linkRoot}/delete`, - userType: req.session.userType, - 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' - }, - ] - }); -}); module.exports = { + priority: 30, root: '/admin', router: router };