more improvements
This commit is contained in:
+7
-1
@@ -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
|
||||
@@ -318,3 +318,8 @@ img.uploading:hover {
|
||||
.parent-help .help-text {
|
||||
opacity: 0%;
|
||||
}
|
||||
|
||||
.google-link {
|
||||
padding-left: 10px;
|
||||
font-size: smaller;
|
||||
}
|
||||
@@ -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);
|
||||
})
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user