start better rts inegration

This commit is contained in:
Ross
2026-06-29 10:44:39 +01:00
parent 2425e62caf
commit 1317d6a438
12 changed files with 255 additions and 7 deletions
+5
View File
@@ -1326,6 +1326,11 @@ class UserAnswerBase(models.Model):
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
time_answered = models.DateTimeField(
null=True,
blank=True,
help_text="Time the question was answered (client-side)",
)
class Meta:
abstract = True
+18 -7
View File
@@ -3440,6 +3440,15 @@ class ExamViews(View, LoginRequiredMixin):
# Mark as unmarked
ans.score = ans.ScoreOptions.UNMARKED
time_answered_str = answer.get("time_answered")
if time_answered_str:
from django.utils.dateparse import parse_datetime
parsed_time = parse_datetime(time_answered_str)
if parsed_time:
if timezone.is_naive(parsed_time):
parsed_time = timezone.make_aware(parsed_time)
ans.time_answered = parsed_time
ans.full_clean()
ans.save()
@@ -3467,14 +3476,16 @@ class ExamViews(View, LoginRequiredMixin):
cid_user_exam = exam.get_or_create_cid_user_exam(
cid_user=c, start_time=t
)
exam.exam_user_status.create(
cid_user_exam=cid_user_exam,
status="submitted",
extra="manual submission",
)
in_progress = request.POST.get("in_progress") == "true"
if not in_progress:
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()
cid_user_exam.end_time = timezone.now()
cid_user_exam.save()
return JsonResponse({"success": True, "question_count": n})
return JsonResponse({"success": False, "error": "Invalid data"})