diff --git a/generic/views.py b/generic/views.py index 1d243675..0104e489 100644 --- a/generic/views.py +++ b/generic/views.py @@ -1594,15 +1594,16 @@ class ExamViews(View, LoginRequiredMixin): # exam_json_cache = cache.get("{}_exam_json_{}".format(self.app_name, pk)) # Log exam access - user = request.user - if cid is not None: - user = None - cid_user = CidUser.objects.get(cid=cid) - else: - cid_user = None - exam.exam_user_status.create( - cid_user=cid_user, user_user=user, status="downloaded" - ) + if exam.exam_mode: + user = request.user + if cid is not None: + user = None + cid_user = CidUser.objects.get(cid=cid) + else: + cid_user = None + exam.exam_user_status.create( + cid_user=cid_user, user_user=user, status="downloaded" + ) path = "{0}{1}/exam/{2}.json".format(settings.MEDIA_ROOT, self.app_name, pk) url = "{0}{1}/exam/{2}.json".format(settings.MEDIA_URL, self.app_name, pk) @@ -1650,7 +1651,7 @@ class ExamViews(View, LoginRequiredMixin): """ exam = get_object_or_404(self.Exam, pk=pk) - if self.exam_mode and not exam.active and not self.check_user_access(request.user, pk): + if exam.exam_mode and not exam.active and not self.check_user_access(request.user, pk): raise Http404("No available exam") # Check access for users @@ -1667,16 +1668,18 @@ class ExamViews(View, LoginRequiredMixin): exam_json["generated"] = time.isoformat() exam_json["exam_json_id"] = exam.exam_json_id # exam_json["exam_active"] = False + # Log exam access - user = request.user - if cid is not None: - user = None - cid_user = CidUser.objects.get(cid=cid) - else: - cid_user = None - exam.exam_user_status.create( - cid_user=cid, user_user=user, status="downloaded", extra="unbased" - ) + if exam.exam_mode: + user = request.user + if cid is not None: + user = None + cid_user = CidUser.objects.get(cid=cid) + else: + cid_user = None + exam.exam_user_status.create( + cid_user=cid, user_user=user, status="downloaded", extra="unbased" + ) return JsonResponse(exam_json)