refactoring, better README (breaking commit...)
[qomet.git] / routes / pages.js
index 37b84cf..c92f2e7 100644 (file)
@@ -1,15 +1,14 @@
 let router = require("express").Router();
 const access = require("../utils/access");
-const UserEntity = require("../entities/user");
-const AssessmentEntity = require("../entities/assessment");
-const CourseModel = require("../models/course");
+const UserModel = require("../models/user");
 const AssessmentModel = require("../models/assessment");
+const CourseModel = require("../models/course");
 
 // Actual pages (least specific last)
 
 // List initials and count assessments
 router.get("/", (req,res) => {
-       UserEntity.getAll( (err,userArray) => {
+       UserModel.getAll( (err,userArray) => {
                if (!!err)
                        return res.json(err);
                res.render("index", {
@@ -28,14 +27,20 @@ router.get("/login", access.unlogged, (req,res) => {
 
 // Redirection screens when possible cheating attempt detected in exam
 router.get("/enablejs", (req,res) => {
-       res.render("enable-js", {
+       res.render("enablejs", {
                title: "JS disabled",
        });
 });
 
-router.get("/nodevtools", (req,res) => {
-       res.render("no-devtools", {
-               title: "Devtools enabled",
+router.get("/fullscreen", (req,res) => {
+       res.render("fullscreen", {
+               title: "Not in fullscreen",
+       });
+});
+
+router.get("/noblur", (req,res) => {
+       res.render("noblur", {
+               title: "Lost focus",
        });
 });
 
@@ -70,7 +75,7 @@ router.get("/:initials([a-z0-9]+)/:courseCode([a-z0-9._-]+)", (req,res) => {
        let code = req.params["courseCode"];
        CourseModel.getByRefs(initials, code, (err,course) => {
                access.checkRequest(res, err, course, "Course not found", () => {
-                       AssessmentEntity.getByCourse(course._id, (err2,assessmentArray) => {
+                       AssessmentModel.getByCourse(course._id, (err2,assessmentArray) => {
                                if (!!err)
                                        return res.json(err);
                                access.getUser(req, res, (err2,user) => {
@@ -91,6 +96,18 @@ router.get("/:initials([a-z0-9]+)/:courseCode([a-z0-9._-]+)", (req,res) => {
        });
 });
 
+// Grading students answers: --> after identification (password), always send secret with requests
+router.get("/:initials([a-z0-9]+)/:courseCode([a-z0-9._-]+)/grade", (req,res) => {
+       let initials = req.params["initials"];
+       let code = req.params["courseCode"];
+       // TODO: if (main) teacher, also send secret, saving one request
+       res.render("grade", {
+               title: "grade exams " + code + "/" + name,
+               initials: initials,
+               courseCode: code,
+       });
+});
+
 // Display assessment (exam or open status)
 router.get("/:initials([a-z0-9]+)/:courseCode([a-z0-9._-]+)/:assessmentName([a-z0-9._-]+)", (req,res) => {
        let initials = req.params["initials"];
@@ -108,8 +125,7 @@ router.get("/:initials([a-z0-9]+)/:courseCode([a-z0-9._-]+)/:assessmentName([a-z
                                        // Basic headless browser detection
                                        return res.json({errmsg: "Headless browser detected"});
                                }
-                               // Strip conclusion + questions if exam mode (stepwise process)
-                               delete assessment["conclusion"];
+                               // Strip questions if exam mode (stepwise process)
                                delete assessment["questions"];
                        }
                        res.render("assessment", {
@@ -120,16 +136,17 @@ router.get("/:initials([a-z0-9]+)/:courseCode([a-z0-9._-]+)/:assessmentName([a-z
        });
 });
 
-// Monitor: --> after identification (password), always send password hash with requests
+// Monitor: --> after identification (password), always send secret with requests
 router.get("/:initials([a-z0-9]+)/:courseCode([a-z0-9._-]+)/:assessmentName([a-z0-9._-]+)/monitor", (req,res) => {
        let initials = req.params["initials"];
        let code = req.params["courseCode"];
        let name = req.params["assessmentName"];
+       // TODO: if (main) teacher, also send secret, saving one request
        res.render("monitor", {
                title: "monitor assessment " + code + "/" + name,
                initials: initials,
-               code: code,
-               name: name,
+               courseCode: code,
+               examName: name,
        });
 });