.
This commit is contained in:
+15
-5
@@ -325,8 +325,10 @@ def exam_take(request, pk, sk, cid, passcode=None):
|
||||
if exam.valid_users.exists():
|
||||
user = exam.valid_users.filter(cid=cid).first()
|
||||
|
||||
if not user or user.passcode != passcode:
|
||||
if not user:
|
||||
raise Http404("Exam not found")
|
||||
if user.passcode != passcode:
|
||||
raise Http404("Invalid passcode")
|
||||
|
||||
question = exam.exam_questions.all()[sk]
|
||||
|
||||
@@ -348,15 +350,23 @@ def exam_take(request, pk, sk, cid, passcode=None):
|
||||
answer.exam = exam
|
||||
# answer.published_date = timezone.now()
|
||||
answer.save()
|
||||
|
||||
kwargs = {
|
||||
"pk": pk,
|
||||
"cid" : cid
|
||||
}
|
||||
if passcode is None:
|
||||
kwargs["passcode"] = passcode
|
||||
|
||||
if "next" in request.POST:
|
||||
return redirect("physics:exam_take", pk=pk, sk=pos + 1, cid=cid)
|
||||
return redirect("physics:exam_take", sk=pos + 1, **kwargs)
|
||||
elif "previous" in request.POST:
|
||||
return redirect("physics:exam_take", pk=pk, sk=pos - 1, cid=cid)
|
||||
return redirect("physics:exam_take", sk=pos - 1, **kwargs)
|
||||
elif "finish" in request.POST:
|
||||
return redirect("physics:exam_finish", pk=pk, cid=cid)
|
||||
return redirect("physics:exam_finish", **kwargs)
|
||||
elif "goto" in request.POST:
|
||||
return redirect(
|
||||
"physics:exam_take", pk=pk, sk=int(request.POST.get("goto")), cid=cid
|
||||
"physics:exam_take", sk=int(request.POST.get("goto")), **kwargs
|
||||
)
|
||||
else:
|
||||
form = CidUserAnswerForm(instance=answer)
|
||||
|
||||
Reference in New Issue
Block a user