This commit is contained in:
Ross
2022-08-05 12:20:46 +01:00
parent d00d30396c
commit 8b15eeb431
+9 -9
View File
@@ -101,7 +101,7 @@ def active_exams(request):
def exam_scores_cid_user(request, pk, cid=None, passcode=None): def exam_scores_cid_user(request, pk, cid=None, passcode=None):
exam = get_object_or_404(Exam, pk=pk) exam = get_object_or_404(Exam, pk=pk)
if not request.user and not exam.check_cid_user(cid, passcode, request): if cid is not None and not exam.check_cid_user(cid, passcode, request):
raise Http404("Error accessing exam") raise Http404("Error accessing exam")
questions = exam.exam_questions.all() questions = exam.exam_questions.all()
@@ -203,12 +203,12 @@ def exam_take_overview(request, pk, cid=None, passcode=None):
if not exam.active: if not exam.active:
raise Http404("Exam not found") raise Http404("Exam not found")
if not request.user and not exam.check_cid_user(cid, passcode): if cid is not None and not exam.check_cid_user(cid, passcode):
raise Http404("Error accessing exam") raise Http404("Error accessing exam")
questions = exam.exam_questions.all() questions = exam.exam_questions.all()
if request.user: if cid is not None:
answers = CidUserAnswer.objects.filter(user=request.user, exam=exam) answers = CidUserAnswer.objects.filter(user=request.user, exam=exam)
else: else:
answers = CidUserAnswer.objects.filter(cid=cid, exam=exam) answers = CidUserAnswer.objects.filter(cid=cid, exam=exam)
@@ -227,7 +227,7 @@ def exam_take_overview(request, pk, cid=None, passcode=None):
else: else:
question_answer_tuples.append((q, None)) question_answer_tuples.append((q, None))
if request.user: if cid is not None:
cid_user_exam = exam.get_or_create_cid_user_exam(user_user=request.user) cid_user_exam = exam.get_or_create_cid_user_exam(user_user=request.user)
else: else:
c = CidUser.objects.filter(cid=cid).first() c = CidUser.objects.filter(cid=cid).first()
@@ -255,10 +255,10 @@ def exam_take(request, pk, sk, cid=None, passcode=None):
if not exam.active: if not exam.active:
raise Http404("Exam not found") raise Http404("Exam not found")
if not request.user and not exam.check_cid_user(cid, passcode): if cid is not None and not exam.check_cid_user(cid, passcode):
raise Http404("Error accessing exam") raise Http404("Error accessing exam")
if request.user: if cid is not None:
cid_user_exam = exam.get_or_create_cid_user_exam(user_user=request.user) cid_user_exam = exam.get_or_create_cid_user_exam(user_user=request.user)
else: else:
c = CidUser.objects.filter(cid=cid).first() c = CidUser.objects.filter(cid=cid).first()
@@ -270,7 +270,7 @@ def exam_take(request, pk, sk, cid=None, passcode=None):
pos = exam.get_question_index(question) pos = exam.get_question_index(question)
if request.user: if cid is not None:
answer = question.cid_user_answers.filter(user=request.user, exam=exam).first() answer = question.cid_user_answers.filter(user=request.user, exam=exam).first()
else: else:
answer = question.cid_user_answers.filter(cid=cid, exam=exam).first() answer = question.cid_user_answers.filter(cid=cid, exam=exam).first()
@@ -283,7 +283,7 @@ def exam_take(request, pk, sk, cid=None, passcode=None):
if form.is_valid() and not exam.publish_results: if form.is_valid() and not exam.publish_results:
answer = form.save(commit=False) answer = form.save(commit=False)
if request.user: if cid is not None:
answer.user = request.user answer.user = request.user
else: else:
answer.cid = cid answer.cid = cid
@@ -295,7 +295,7 @@ def exam_take(request, pk, sk, cid=None, passcode=None):
cid_user_exam.end_time = timezone.now() cid_user_exam.end_time = timezone.now()
cid_user_exam.save() cid_user_exam.save()
if request.user: if cid is not None:
kwargs = {"pk": pk} kwargs = {"pk": pk}
take_url = "physics:exam_take_user" take_url = "physics:exam_take_user"
finish_url = "physics:exam_take_overview_user" finish_url = "physics:exam_take_overview_user"