From dc11feca47a5c791c814467290e8dd95bed2ca53 Mon Sep 17 00:00:00 2001 From: Ross Date: Mon, 18 Oct 2021 22:23:02 +0100 Subject: [PATCH] . --- anatomy/templates/anatomy/index.html | 19 +++++++++++-------- anatomy/views.py | 14 ++++++++++++++ generic/views.py | 3 +++ rapids/templates/rapids/index.html | 18 ++++++++++-------- rapids/views.py | 10 +++++++++- 5 files changed, 47 insertions(+), 17 deletions(-) diff --git a/anatomy/templates/anatomy/index.html b/anatomy/templates/anatomy/index.html index 2cefa622..bbdfc02f 100644 --- a/anatomy/templates/anatomy/index.html +++ b/anatomy/templates/anatomy/index.html @@ -1,11 +1,14 @@ {% extends 'anatomy/base.html' %} {% block content %} -{% for exam in exams %} -
-

Exam: {{ exam.name }}

- {% if request.user.is_staff %}Mark answers{% endif %} - {% if request.user.is_staff %}Scores{% endif %} -
-{% endfor %} -{% endblock %} \ No newline at end of file + {% for exam in exams %} +
+

Exam: {{ exam.name }}

+ + {% if exam.exam_mode %} + {% if request.user.is_staff %}Mark answers{% endif %} + {% if request.user.is_staff %}Scores{% endif %} + {% endif %} +
+ {% endfor %} +{% endblock %} diff --git a/anatomy/views.py b/anatomy/views.py index 0fad88e0..e070360c 100644 --- a/anatomy/views.py +++ b/anatomy/views.py @@ -289,6 +289,14 @@ def loadJsonAnswer(answer): # # return render(request, "anatomy/exam.html", {"exam" : exam, "question" : question}) +@login_required +def mark_all(request, exam_pk, sk): + return mark(request, exam_pk, sk, unmarked_exam_answers_only=False) + +@login_required +def mark_review(request, exam_pk, sk): + return mark(request, exam_pk, sk, unmarked_exam_answers_only=False, review=True) + # @user_passes_test(user_is_admin, login_url="/accounts/login") @login_required def mark(request, pk, sk): @@ -404,6 +412,9 @@ def mark(request, pk, sk): def exam_scores_cid(request, pk): exam = get_object_or_404(Exam, pk=pk) + if not exam.exam_mode: + raise Http404("Packet not in exam mode") + questions = exam.exam_questions.all() cids = ( @@ -507,6 +518,9 @@ def exam_scores_cid(request, pk): def exam_scores_cid_user(request, pk, sk): exam = get_object_or_404(Exam, pk=pk) + if not exam.exam_mode: + raise Http404("Packet not in exam mode") + # TODO:Need some kind of test for cid cid = sk diff --git a/generic/views.py b/generic/views.py index 14eb0366..f851efb8 100644 --- a/generic/views.py +++ b/generic/views.py @@ -438,6 +438,9 @@ class ExamViews(View, LoginRequiredMixin): def mark_overview(self, request, pk): exam = get_object_or_404(self.Exam, pk=pk) + if not exam.exam_mode: + raise Http404("Packet not in exam mode") + if request.user not in exam.author.all(): if not self.check_user_access(request.user, pk): raise PermissionDenied diff --git a/rapids/templates/rapids/index.html b/rapids/templates/rapids/index.html index 9d6846b5..8a4b0138 100644 --- a/rapids/templates/rapids/index.html +++ b/rapids/templates/rapids/index.html @@ -1,11 +1,13 @@ {% extends 'rapids/base.html' %} {% block content %} -{% for exam in exams %} -
-

Exam: {{ exam.name }}

- {% if request.user.is_staff %}Mark answers{% endif %} - {% if request.user.is_staff %}Scores{% endif %} -
-{% endfor %} -{% endblock %} \ No newline at end of file + {% for exam in exams %} +
+

Exam: {{ exam.name }}

+ {% if exam.exam_mode %} + {% if request.user.is_staff %}Mark answers{% endif %} + {% if request.user.is_staff %}Scores{% endif %} + {% endif %} +
+ {% endfor %} +{% endblock %} diff --git a/rapids/views.py b/rapids/views.py index 3333792e..dcdab237 100755 --- a/rapids/views.py +++ b/rapids/views.py @@ -581,6 +581,9 @@ def mark_review(request, exam_pk, sk): def mark(request, exam_pk, sk, unmarked_exam_answers_only=True, review=False): exam = get_object_or_404(Exam, pk=exam_pk) + if not exam.exam_mode: + raise Http404("Packet not in exam mode") + mark_url = "rapids:mark" if review: mark_url = "rapids:mark_review" @@ -728,6 +731,9 @@ def mark(request, exam_pk, sk, unmarked_exam_answers_only=True, review=False): def exam_scores_cid(request, pk): exam = get_object_or_404(Exam, pk=pk) + if not exam.exam_mode: + raise Http404("Packet not in exam mode") + questions = exam.exam_questions.all() cids = ( @@ -841,8 +847,10 @@ def exam_scores_cid(request, pk): def exam_scores_cid_user(request, pk, cid): exam = get_object_or_404(Exam, pk=pk) + if not exam.exam_mode: + raise Http404("Packet not in exam mode") + # TODO:Need some kind of test for cid - #cid = sk questions = exam.exam_questions.all()