diff --git a/rapids/models.py b/rapids/models.py index 208676e8..10797fdf 100644 --- a/rapids/models.py +++ b/rapids/models.py @@ -267,7 +267,7 @@ class Rapid(models.Model): marker_unmarked = [] for answer in unmarked_answers: if answer.mark.filter(marker=marker).count() < 1: - marker_unmarked.append(answer) + marker_unmarked.append(answer.answer_compare) return marker_unmarked diff --git a/rapids/templates/rapids/mark.html b/rapids/templates/rapids/mark.html index ec21e600..bb922173 100644 --- a/rapids/templates/rapids/mark.html +++ b/rapids/templates/rapids/mark.html @@ -33,7 +33,13 @@ Region: {{ question.get_regions }}, Abnormalities: {{ question.get_abnormalities
{% csrf_token %} {% if not question.normal %} - Click each answer to toggle through marks awarded (as per colour) + Click each answer to toggle through marks awarded (as per colour)
+ {% if exam_answers_only %} + Showing exam answers only + {% else %} + Showing all answers + {% endif %} +
Unmarked:
    diff --git a/rapids/urls.py b/rapids/urls.py index 335a75ab..85eeca4b 100755 --- a/rapids/urls.py +++ b/rapids/urls.py @@ -43,6 +43,7 @@ urlpatterns = [ name="question_review", ), path("exam///mark", views.mark, name="mark"), + path("exam///mark/all", views.mark_all, name="mark_all"), path( "exam//mark", views.RapidExamViews.mark_overview, name="mark_overview" ), diff --git a/rapids/views.py b/rapids/views.py index 609b1c41..9e4fde0b 100755 --- a/rapids/views.py +++ b/rapids/views.py @@ -572,9 +572,12 @@ def loadJsonAnswer(answer): return True, None +def mark_all(request, pk, sk): + return mark(request, pk, sk, exam_answers_only=False) + # @user_passes_test(user_is_admin, login_url="/accounts/login") @login_required -def mark(request, pk, sk): +def mark(request, pk, sk, exam_answers_only=True): exam = get_object_or_404(Exam, pk=pk) questions = exam.exam_questions.all() @@ -596,7 +599,7 @@ def mark(request, pk, sk): for ans in question.answers.all(): answers_dict[ans.answer_compare] = ans - marked_answers_set = set(answers_dict.keys()) + #marked_answers_set = set(answers_dict.keys()) # correct_answers = [i.answer.lower() for i in question.answers.all()] # half_correct_answers = [ @@ -606,7 +609,10 @@ def mark(request, pk, sk): # i.answer.lower() for i in question.incorrect_answers.all() # ] - unmarked_user_answers = question.get_unmarked_user_answers() + if exam_answers_only: + unmarked_user_answers = question.get_unmarked_user_answers(exam_pk=pk) + else: + unmarked_user_answers = question.get_unmarked_user_answers() if request.method == "POST": @@ -722,6 +728,7 @@ def mark(request, pk, sk): "correct_answers": correct_answers, "half_mark_answers": half_mark_answers, "incorrect_answers": incorrect_answers, + "exam_answers_only": exam_answers_only, }, )