From 9d16d8342becd44092e9087b4953fecc7f3e0662 Mon Sep 17 00:00:00 2001 From: maheshgudi Date: Wed, 18 Jan 2017 03:26:21 +0530 Subject: students can see the correct option for MCQ/MCC questions in view_answerpaper students can also see the test cases of a code question in view_answerpaper --- yaksh/templates/yaksh/grade_user.html | 9 ++++++++- yaksh/templates/yaksh/user_data.html | 10 +++++++++- yaksh/templates/yaksh/view_answerpaper.html | 23 ++++++++++++++++++----- yaksh/views.py | 14 ++++++++++---- 4 files changed, 45 insertions(+), 11 deletions(-) (limited to 'yaksh') diff --git a/yaksh/templates/yaksh/grade_user.html b/yaksh/templates/yaksh/grade_user.html index ec8c244..2ab5047 100644 --- a/yaksh/templates/yaksh/grade_user.html +++ b/yaksh/templates/yaksh/grade_user.html @@ -130,7 +130,14 @@ Status : Passed
{% if question.type == "mcq" or question.type == "mcc" %}
Choices:
{% for testcase in question.get_test_cases %} -
{{ forloop.counter }}. {{ testcase.options|safe }} + {% if testcase.correct %} +
+ {{ forloop.counter }}. {{ testcase.options|safe }} + + {% else %} +
+ {{ forloop.counter }}. {{ testcase.options|safe }} + {% endif %} {% endfor %} {% else %}
Test cases:
diff --git a/yaksh/templates/yaksh/user_data.html b/yaksh/templates/yaksh/user_data.html index 9c11dd9..27c5237 100644 --- a/yaksh/templates/yaksh/user_data.html +++ b/yaksh/templates/yaksh/user_data.html @@ -66,7 +66,15 @@ User IP address: {{ paper.user_ip }} {% if question.type == "mcq" or question.type == "mcc" %}
Choices:
{% for testcase in question.get_test_cases %} -
{{ forloop.counter }}. {{ testcase.options|safe }} + {% if testcase.correct %} +
+ {{ forloop.counter }}. {{ testcase.options|safe }} + + + {% else %} +
+ {{ forloop.counter }}. {{ testcase.options|safe }} + {% endif %} {% endfor %} {% else %}
Test cases:
diff --git a/yaksh/templates/yaksh/view_answerpaper.html b/yaksh/templates/yaksh/view_answerpaper.html index cd607dd..172444f 100644 --- a/yaksh/templates/yaksh/view_answerpaper.html +++ b/yaksh/templates/yaksh/view_answerpaper.html @@ -40,11 +40,24 @@
Question:
{{ question.description|safe }} {% if question.type == "mcq" or question.type == "mcc" %} -
Choices:
- {% for testcase in question.get_test_cases %} -
{{ forloop.counter }}. {{ testcase.options|safe }} - {% endfor %} - {%endif%} +
Choices:
+ {% for testcase in question.get_test_cases %} + {% if testcase.correct %} +
+ {{ forloop.counter }}. {{ testcase.options|safe }} + + + {% else %} +
+ {{ forloop.counter }}. {{ testcase.options|safe }} + {% endif %} + {% endfor %} + {% else %} +
Test cases:
+ {% for testcase in question.get_test_cases %} +
{{ forloop.counter }}. {{ testcase }} + {% endfor %} + {% endif %}
diff --git a/yaksh/views.py b/yaksh/views.py index 41539b4..1dc7ea2 100644 --- a/yaksh/views.py +++ b/yaksh/views.py @@ -1291,21 +1291,27 @@ def download_course_csv(request, course_id): if not course.is_creator(user) and not course.is_teacher(user): raise Http404('The question paper does not belong to your course') students = course.get_only_students().values("id", "first_name", "last_name") - quizzes = Quiz.objects.filter(course=course) + quizzes = Quiz.objects.filter(course=course, is_trial=False) + for student in students: total_course_marks = 0.0 + user_course_marks = 0.0 for quiz in quizzes: quiz_best_marks = AnswerPaper.objects.get_user_best_of_attempts_marks\ (quiz, student["id"]) - total_course_marks += quiz_best_marks + user_course_marks += quiz_best_marks + total_course_marks += quiz.questionpaper_set.values_list\ + ("total_marks", flat=True)[0] student["{}".format(quiz.description)] = quiz_best_marks - student["total"] = total_course_marks + student["total_scored"] = user_course_marks + student["out_of"] = total_course_marks + response = HttpResponse(content_type='text/csv') response['Content-Disposition'] = 'attachment; filename="{0}.csv"'.format( (course.name).lower().replace('.', '')) header = ['first_name', 'last_name']+[quiz.description for quiz in quizzes]\ - + ['total'] + + ['total_scored', 'out_of'] writer = csv.DictWriter(response,fieldnames=header, extrasaction='ignore') writer.writeheader() for student in students: -- cgit