migarate exam_user_status

This commit is contained in:
Ross
2024-07-22 17:25:12 +01:00
parent ca4c8d31b9
commit aeaf0fcb2e
7 changed files with 93 additions and 46 deletions
+13 -22
View File
@@ -1105,9 +1105,9 @@ class ExamViews(View, LoginRequiredMixin):
raise PermissionDenied
if cid is not None:
statuses = exam.exam_user_status.filter(cid_user__cid=cid)
statuses = exam.exam_user_status.filter(cid_user_exam__cid_user__cid=cid)
elif user_id is not None:
statuses = exam.exam_user_status.filter(user_user__id=user_id)
statuses = exam.exam_user_status.filter(cid_user_exam__user_user__id=user_id)
else:
statuses = exam.exam_user_status.all()
@@ -1692,17 +1692,14 @@ class ExamViews(View, LoginRequiredMixin):
cid_user_exam = exam.get_or_create_cid_user_exam(
user_user=request.user, start_time=t
)
exam.exam_user_status.create(
cid_user=None, user_user=request.user, status="submitted", extra="manual submission"
)
else:
c = CidUser.objects.filter(cid=request.POST.get("cid")).first()
cid_user_exam = exam.get_or_create_cid_user_exam(
cid_user=c, start_time=t
)
exam.exam_user_status.create(
cid_user=c, user_user=None, status="submitted", extra="manual submission"
)
exam.exam_user_status.create(
cid_user_exam=cid_user_exam, status="submitted", extra="manual submission"
)
cid_user_exam.end_time = timezone.now()
cid_user_exam.save()
@@ -1738,14 +1735,11 @@ class ExamViews(View, LoginRequiredMixin):
# Log exam access
if exam.exam_mode:
if cid is not None:
user = None
cid_user = CidUser.objects.get(cid=cid)
else:
user = request.user
cid_user = None
cid_user_exam = exam.get_or_create_cid_user_exam(
cid=cid, user_user=request.user
)
exam.exam_user_status.create(
cid_user=cid_user, user_user=user, status="downloaded"
cid_user_exam=cid_user_exam, status="downloaded"
)
path = "{0}{1}/exam/{2}.json".format(settings.MEDIA_ROOT, self.app_name, pk)
@@ -1818,14 +1812,11 @@ class ExamViews(View, LoginRequiredMixin):
# Log exam access
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
cid_user_exam = exam.get_or_create_cid_user_exam(
cid=cid, user_user=request.user
)
exam.exam_user_status.create(
cid_user=cid_user, user_user=user, status="downloaded", extra="unbased"
cid_user_exam=cid_user_exam, status="downloaded", extra="unbased"
)
return JsonResponse(exam_json)