more improvements

This commit is contained in:
Ross
2020-12-12 13:55:59 +00:00
parent 5ca4438e77
commit 9dc9cb4bf0
5 changed files with 33 additions and 17 deletions
+7 -1
View File
@@ -363,6 +363,12 @@ class CidUserAnswer(models.Model):
is not None is not None
): ):
mark = 1 mark = 1
else: elif (
q.answers.filter(
answer__iexact=ans, status=Answer.MarkOptions.INCORRECT
).first()
):
mark = 0 mark = 0
else:
mark = "unmarked"
return mark return mark
+5
View File
@@ -318,3 +318,8 @@ img.uploading:hover {
.parent-help .help-text { .parent-help .help-text {
opacity: 0%; opacity: 0%;
} }
.google-link {
padding-left: 10px;
font-size: smaller;
}
+9 -4
View File
@@ -8,10 +8,15 @@ var marked_answers = {
$(document).ready(function () { $(document).ready(function () {
$(".answer-list li").each(function (index, element) { $(".answer-list li").each(function (index, element) {
$(element).append($("<span class='google-link' title='search in google'><a href='https://www.google.com/search?q="+$(element).text()+"' target='_blank'>G</a></span>"));
});
$(".answer-list span.answer").each(function (index, element) {
console.log(element); console.log(element);
$(element).click(function (e) { $(element).click(function (e) {
var classes = ['correct', 'half-correct', 'incorrect']; var classes = ['answer correct', 'answer half-correct', 'answer incorrect'];
$(element).each(function () { $(element).each(function () {
this.className = classes[($.inArray(this.className, classes) + 1) % classes.length]; this.className = classes[($.inArray(this.className, classes) + 1) % classes.length];
}); });
@@ -146,15 +151,15 @@ function prepAnswerData() {
window.marked_answers["correct"] = []; window.marked_answers["correct"] = [];
window.marked_answers["half-correct"] = []; window.marked_answers["half-correct"] = [];
window.marked_answers["incorrect"] = []; window.marked_answers["incorrect"] = [];
$("li.correct").map(function () { $("li span.correct").map(function () {
ans = $(this).text(); ans = $(this).text();
window.marked_answers["correct"].push(ans); window.marked_answers["correct"].push(ans);
}) })
$("li.half-correct").map(function () { $("li span.half-correct").map(function () {
ans = $(this).text(); ans = $(this).text();
window.marked_answers["half-correct"].push(ans); window.marked_answers["half-correct"].push(ans);
}) })
$("li.incorrect").map(function () { $("li span.incorrect").map(function () {
ans = $(this).text(); ans = $(this).text();
window.marked_answers["incorrect"].push(ans); window.marked_answers["incorrect"].push(ans);
}) })
+5 -4
View File
@@ -9,22 +9,23 @@
</div> </div>
<div class="marking"> <div class="marking">
<form method="POST" class="post-form">{% csrf_token %} <form method="POST" class="post-form">{% csrf_token %}
Click each answer to toggle through marks awarded (as per colour)
<div class="marking-list">Marked: <div class="marking-list">Marked:
<ul id="marked-answer-list" class="answer-list"> <ul id="marked-answer-list" class="answer-list">
{% for answer in correct_answers %} {% for answer in correct_answers %}
<li class="correct">{{ answer }} </li> <li><span class="answer correct">{{ answer }}</span></li>
{% endfor %} {% endfor %}
{% for answer in half_mark_answers %} {% for answer in half_mark_answers %}
<li class="half-correct">{{ answer }} </li> <li><span class="answer half-correct">{{ answer }}</span></li>
{% endfor %} {% endfor %}
{% for answer in incorrect_answers %} {% for answer in incorrect_answers %}
<li class="incorrect">{{ answer }} </li> <li><span class="answer incorrect">{{ answer }}</span></li>
{% endfor %} {% endfor %}
</ul> </ul>
Unmarked: Unmarked:
<ul id="new-answer-list" class="answer-list"> <ul id="new-answer-list" class="answer-list">
{% for answer in user_answers %} {% for answer in user_answers %}
<li class="not-marked">{{ answer }} </li> <li class="not-marked"><span class="answer">{{ answer }}</span></li>
{% endfor %} {% endfor %}
</ul> </ul>
<div class="answer-list key">Key: <span class="correct">2 Marks</span>, <span class="half-correct">1 <div class="answer-list key">Key: <span class="correct">2 Marks</span>, <span class="half-correct">1
+6 -7
View File
@@ -350,13 +350,7 @@ def mark(request, pk, sk):
# i.answer.lower() for i in question.incorrect_answers.all() # i.answer.lower() for i in question.incorrect_answers.all()
#] #]
# It's probably better to do some processing/checking in the model unmarked_user_answers = question.GetUnmarkedAnswers()
unmarked_user_answers = (set([
i.answer.lower()
for i in question.cid_user_answers.all() if i.answer.strip() != ""
]) - marked_answers_set) # .filter(user=User)
if request.method == "POST": if request.method == "POST":
@@ -686,6 +680,11 @@ def exam_scores_cid_user(request, pk, sk):
answers_marks.append(answer_score) answers_marks.append(answer_score)
answers_and_marks.append((ans, answer_score, correct_answer)) answers_and_marks.append((ans, answer_score, correct_answer))
if "unmarked" in answers_marks:
total_score = sum(i for i in answers_marks if type(i) == int)
unmarked_number = len(answers_marks) - len(total_score)
total_score = "{} ({} unmarked)".format(total_score, unmarked_number)
else:
total_score = sum(answers_marks) total_score = sum(answers_marks)
max_score = len(questions) * 2 max_score = len(questions) * 2