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 %}
-
-
- {% 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 %}
+
+
+
+ {% 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 %}
-
-
- {% 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 %}
+
+
+ {% 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()