\ No newline at end of file
diff --git a/generic/templates/generic/exam_scores_base.html b/generic/templates/generic/exam_scores_base.html
index a7a25559..e930a88e 100644
--- a/generic/templates/generic/exam_scores_base.html
+++ b/generic/templates/generic/exam_scores_base.html
@@ -131,7 +131,10 @@
{% block breakdown %}{% endblock breakdown %}
-
+ Email results
User results emailed: {{exam.exam_results_emailed|default:"Never"}}
+ hx-trigger="click"
+ hx-target="#user-details">Refresh email status
Note: currently only works with registered users
diff --git a/generic/views.py b/generic/views.py
index 10e02261..0c2b30c1 100644
--- a/generic/views.py
+++ b/generic/views.py
@@ -374,7 +374,7 @@ class ExamViews(View, LoginRequiredMixin):
question_type,
normalise_score=None,
):
- self.Exam = exam
+ self.Exam: ExamBase = exam
self.Question = question
self.Answer = answer
self.UserAnswer = cid_user_answer
@@ -720,11 +720,11 @@ class ExamViews(View, LoginRequiredMixin):
if not self.check_user_access(request.user, exam_id):
raise PermissionDenied
- users = [i[2:] for i in exam.user_scores if i.startswith("u/")]
+ users = exam.get_user_users_with_scores()
status = {}
- for u in users:
- user = User.objects.get(pk=u)
+ for user in users:
+ #user = User.objects.get(pk=u)
user_exam = exam.get_or_create_cid_user_exam(user_user=user)
if user_exam.results_emailed_status:
status[user] = json.loads(user_exam.results_emailed_status)
@@ -736,6 +736,7 @@ class ExamViews(View, LoginRequiredMixin):
"exam": exam,
"status": status,
"app_name": self.app_name,
+ "users": users,
},
)
return JsonResponse(status)
@@ -770,13 +771,13 @@ class ExamViews(View, LoginRequiredMixin):
# We only need to send emails to those who have scores
# (who should be in exam.user_scores)
if users is None:
- users = [i[2:] for i in exam.user_scores if i.startswith("u/")]
+ users = exam.get_user_users_with_scores()
time = timezone.now()
email_results = {}
- for u in users:
- user = User.objects.get(pk=u)
+ for user in users:
+ #user = User.objects.get(pk=u)
user_exam = exam.get_or_create_cid_user_exam(user_user=user)
if unsent_only and user_exam.results_emailed_status: