From 537d0fc5c5884ab620e587ff977ed61a2a50504d Mon Sep 17 00:00:00 2001 From: maheshgudi Date: Mon, 5 Feb 2018 20:04:43 +0530 Subject: Add arrange options type question in answerpaper htmls --- yaksh/templates/yaksh/grade_user.html | 19 ++++++++++++++++++- yaksh/templates/yaksh/user_data.html | 18 ++++++++++++++++++ yaksh/templates/yaksh/view_answerpaper.html | 21 ++++++++++++++++++--- yaksh/templatetags/custom_filters.py | 13 ++++++++++++- 4 files changed, 66 insertions(+), 5 deletions(-) diff --git a/yaksh/templates/yaksh/grade_user.html b/yaksh/templates/yaksh/grade_user.html index 93f00e0..09887c4 100644 --- a/yaksh/templates/yaksh/grade_user.html +++ b/yaksh/templates/yaksh/grade_user.html @@ -167,7 +167,7 @@ Status : Failed
{% endif %} {% endfor %} - {% elif question.type == "integer" or "string" or "float" %} + {% elif question.type == "integer" or question.type == "string" or question.type == "float" %}
Correct Answer:
{% for testcase in question.get_test_cases %} {{ testcase.correct|safe }} @@ -175,6 +175,14 @@ Status : Failed
{{ testcase.error_margin|safe }} {% endif %} {% endfor %} + {% elif question.type == "arrange" %} +
Correct Order:
+
+ {% for testcase in question.get_test_cases %} +
  • {{ testcase.options|safe }}
  • + {% endfor %} +
    + {% else %}
    Test cases:
    {% for testcase in question.get_test_cases %} @@ -307,6 +315,15 @@ Status : Failed
    {% endif %} {% endfor %} + + {% elif question.type == "arrange"%} +
    + {% get_arrange_user_answer ans.answer.answer question as tc_list %} + {% for testcases in tc_list %} +
  • {{ testcases.options.strip|safe }}
  • + {% endfor %} +
    + {% else %}
    {{ ans.answer.answer.strip|safe }} diff --git a/yaksh/templates/yaksh/user_data.html b/yaksh/templates/yaksh/user_data.html index ce2533e..fe3f2a6 100644 --- a/yaksh/templates/yaksh/user_data.html +++ b/yaksh/templates/yaksh/user_data.html @@ -80,6 +80,13 @@ User IP address: {{ paper.user_ip }} {{ testcase.correct|safe }} {% endfor %} + {% elif question.type == "arrange" %} +
    Correct Order:
    +
    + {% for testcase in question.get_test_cases %} +
  • {{ testcase.options|safe }}
  • + {% endfor %} +
    {% else %}
    Test cases:
    @@ -99,6 +106,7 @@ User IP address: {{ paper.user_ip }} {% endif %}
    Student answer:
    + {% if question.type == "mcc"%}
    {% for testcases in question.get_test_cases %} @@ -107,6 +115,7 @@ User IP address: {{ paper.user_ip }} {% endif %} {% endfor %}
    + {% elif question.type == "mcq"%}
    {% for testcases in question.get_test_cases %} @@ -115,6 +124,15 @@ User IP address: {{ paper.user_ip }} {% endif %} {% endfor %}
    + + {% elif question.type == "arrange"%} +
    + {% get_arrange_user_answer answers.0.answer question as tc_list %} + {% for testcases in tc_list %} +
  • {{ testcases.options.strip|safe }}
  • + {% endfor %} +
    + {%else%}
    {{ answers.0.answer|safe }} diff --git a/yaksh/templates/yaksh/view_answerpaper.html b/yaksh/templates/yaksh/view_answerpaper.html index 971ef77..3d39092 100644 --- a/yaksh/templates/yaksh/view_answerpaper.html +++ b/yaksh/templates/yaksh/view_answerpaper.html @@ -35,9 +35,9 @@ End time : {{ paper.end_time }}
    Percentage obtained: {{ paper.percent }}%
    {% if paper.passed %} - Status : Failed
    - {% else %} Status : Passed
    + {% else %} + Status : Failed
    {% endif %}

    @@ -67,12 +67,20 @@ {% endif %} {% endfor %} - {% elif question.type == "integer" or "string" or "float" %} + {% elif question.type == "integer" or question.type == "string" or question.type == "float" %}
    Correct Answer:
    {% for testcase in question.get_test_cases %} {{ testcase.correct|safe }} {% endfor %} + {% elif question.type == "arrange" %} +
    Correct Order:
    +
    + {% for testcase in question.get_test_cases %} +
  • {{ testcase.options|safe }}
  • + {% endfor %} +
    + {% else %}
    Test cases:
    {% for testcase in question.get_test_cases %} @@ -108,6 +116,13 @@ {% endif %} {% endfor %}
    + {% elif question.type == "arrange"%} +
    + {% get_arrange_user_answer answers.0.answer question as tc_list %} + {% for testcases in tc_list %} +
  • {{ testcases.options.strip|safe }}
  • + {% endfor %} +
    {% elif question.type == "upload" and has_user_assignment %}
    diff --git a/yaksh/templatetags/custom_filters.py b/yaksh/templatetags/custom_filters.py index fa0802f..05c363c 100644 --- a/yaksh/templatetags/custom_filters.py +++ b/yaksh/templatetags/custom_filters.py @@ -1,5 +1,6 @@ from django import template from django.template.defaultfilters import stringfilter +from ast import literal_eval import os try: from itertools import zip_longest @@ -66,4 +67,14 @@ def course_completion_percent(course, user): @register.simple_tag def get_ordered_testcases(question, answerpaper): - return question.get_ordered_test_cases(answerpaper) \ No newline at end of file + return question.get_ordered_test_cases(answerpaper) + +@register.simple_tag +def get_arrange_user_answer(ans, question): + ans = str(ans) + ans_list = literal_eval(ans) + testcase_list = [] + for answer_id in ans_list: + tc = question.get_test_case(id=int(answer_id)) + testcase_list.append(tc) + return testcase_list -- cgit