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
):
mark = 1
else:
elif (
q.answers.filter(
answer__iexact=ans, status=Answer.MarkOptions.INCORRECT
).first()
):
mark = 0
else:
mark = "unmarked"
return mark
+5
View File
@@ -318,3 +318,8 @@ img.uploading:hover {
.parent-help .help-text {
opacity: 0%;
}
.google-link {
padding-left: 10px;
font-size: smaller;
}
+9 -4
View File
@@ -8,10 +8,15 @@ var marked_answers = {
$(document).ready(function () {
$(".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);
$(element).click(function (e) {
var classes = ['correct', 'half-correct', 'incorrect'];
var classes = ['answer correct', 'answer half-correct', 'answer incorrect'];
$(element).each(function () {
this.className = classes[($.inArray(this.className, classes) + 1) % classes.length];
});
@@ -146,15 +151,15 @@ function prepAnswerData() {
window.marked_answers["correct"] = [];
window.marked_answers["half-correct"] = [];
window.marked_answers["incorrect"] = [];
$("li.correct").map(function () {
$("li span.correct").map(function () {
ans = $(this).text();
window.marked_answers["correct"].push(ans);
})
$("li.half-correct").map(function () {
$("li span.half-correct").map(function () {
ans = $(this).text();
window.marked_answers["half-correct"].push(ans);
})
$("li.incorrect").map(function () {
$("li span.incorrect").map(function () {
ans = $(this).text();
window.marked_answers["incorrect"].push(ans);
})
+5 -4
View File
@@ -9,22 +9,23 @@
</div>
<div class="marking">
<form method="POST" class="post-form">{% csrf_token %}
Click each answer to toggle through marks awarded (as per colour)
<div class="marking-list">Marked:
<ul id="marked-answer-list" class="answer-list">
{% for answer in correct_answers %}
<li class="correct">{{ answer }} </li>
<li><span class="answer correct">{{ answer }}</span></li>
{% endfor %}
{% for answer in half_mark_answers %}
<li class="half-correct">{{ answer }} </li>
<li><span class="answer half-correct">{{ answer }}</span></li>
{% endfor %}
{% for answer in incorrect_answers %}
<li class="incorrect">{{ answer }} </li>
<li><span class="answer incorrect">{{ answer }}</span></li>
{% endfor %}
</ul>
Unmarked:
<ul id="new-answer-list" class="answer-list">
{% for answer in user_answers %}
<li class="not-marked">{{ answer }} </li>
<li class="not-marked"><span class="answer">{{ answer }}</span></li>
{% endfor %}
</ul>
<div class="answer-list key">Key: <span class="correct">2 Marks</span>, <span class="half-correct">1
+7 -8
View File
@@ -350,13 +350,7 @@ def mark(request, pk, sk):
# 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 = (set([
i.answer.lower()
for i in question.cid_user_answers.all() if i.answer.strip() != ""
]) - marked_answers_set) # .filter(user=User)
unmarked_user_answers = question.GetUnmarkedAnswers()
if request.method == "POST":
@@ -686,7 +680,12 @@ def exam_scores_cid_user(request, pk, sk):
answers_marks.append(answer_score)
answers_and_marks.append((ans, answer_score, correct_answer))
total_score = sum(answers_marks)
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)
max_score = len(questions) * 2