.
This commit is contained in:
@@ -236,6 +236,37 @@ def exam_start(request, pk):
|
||||
},
|
||||
)
|
||||
|
||||
def exam_finish(request, pk, cid):
|
||||
exam = get_object_or_404(Exam, pk=pk)
|
||||
|
||||
questions = exam.exam_questions.all()
|
||||
|
||||
answers = CidUserAnswer.object.filter(
|
||||
cid=cid, exam=exam)
|
||||
|
||||
answer_question_map = {}
|
||||
for ans in answers:
|
||||
answer_question_map[ans.question] = ans
|
||||
|
||||
question_answer_tuples = []
|
||||
for q in questions:
|
||||
if q in answer_question_map:
|
||||
question_answer_tuples.append(q, answer_question_map[q])
|
||||
else:
|
||||
question_answer_tuples.append(q, None)
|
||||
|
||||
if not exam.active:
|
||||
raise Http404("Exam not found")
|
||||
|
||||
return render(
|
||||
request,
|
||||
"sbas/exam_finish.html",
|
||||
{
|
||||
"exam": exam,
|
||||
"question_answer_tuples": question_answer_tuples
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
def exam_take(request, pk, sk, cid):
|
||||
|
||||
@@ -269,6 +300,8 @@ def exam_take(request, pk, sk, cid):
|
||||
return redirect("sbas:exam_take", pk=pk, sk=pos, cid=cid)
|
||||
elif "previous" in request.POST:
|
||||
return redirect("sbas:exam_take", pk=pk, sk=pos - 2, cid=cid)
|
||||
elif "finish" in request.POST:
|
||||
return redirect("sbas:exam_finish", pk=pk, cid=cid)
|
||||
else:
|
||||
form = CidUserAnswerForm(instance=answer)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user