From 100945478bdfd41b434ae053725219e6bc7cc7c0 Mon Sep 17 00:00:00 2001 From: Ross Date: Mon, 3 Jul 2023 09:00:28 +0100 Subject: [PATCH] collections user testing --- atlas/views.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/atlas/views.py b/atlas/views.py index 6f28ff03..4ed6a035 100755 --- a/atlas/views.py +++ b/atlas/views.py @@ -1240,7 +1240,7 @@ def collection_take_overview(request, pk, cid, passcode): if not collection.active: raise Http404("Exam not found") - if not collection.check_cid_user(cid, passcode): + if not collection.check_cid_user(cid, passcode, request): raise Http404("Error accessing exam") cases = collection.cases.all().order_by("casedetail__sort_order").prefetch_related() @@ -1278,10 +1278,10 @@ def collection_take_overview(request, pk, cid, passcode): }, ) -def collection_case_view_review(request, pk, case_number): +def collection_case_view_review(request, pk: int, case_number: int): return collection_case_view_take(request, pk, case_number, None, None) -def collection_case_view_take(request, pk, case_number, cid, passcode): +def collection_case_view_take(request, pk: int, case_number: int, cid=None, passcode=None): collection = get_object_or_404(CaseCollection, pk=pk) form = None @@ -1291,9 +1291,16 @@ def collection_case_view_take(request, pk, case_number, cid, passcode): if not collection.active: raise Http404("Exam not found") - if not collection.check_cid_user(cid, passcode, request): + if cid is not None and not collection.check_cid_user(cid, passcode, request): raise Http404("Error accessing exam") + + if cid is not None: + c = CidUser.objects.filter(cid=cid).first() + cid_user_exam = collection.get_or_create_cid_user_exam(cid_user=c) + else: + cid_user_exam = collection.get_or_create_cid_user_exam(user_user=request.user) + cases = collection.cases.all().order_by("casedetail__sort_order").prefetch_related() case = cases[case_number]