.
This commit is contained in:
+13
-5
@@ -312,7 +312,7 @@ class CidUser(models.Model):
|
||||
for n, t in self.EXAM_TYPES:
|
||||
exam_rel = getattr(self, t)
|
||||
if exam_rel.exists():
|
||||
exams = exam_rel.filter(exam_mode=True).order_by("name")
|
||||
exams = exam_rel.filter(exam_mode=True, archive=False).order_by("name")
|
||||
available_exams.append((n, exams))
|
||||
|
||||
return available_exams
|
||||
@@ -324,28 +324,33 @@ class CidUser(models.Model):
|
||||
if self.name:
|
||||
name = f"{self.name} "
|
||||
|
||||
exam_text = [f"Candidate {name}{self.cid} [{self.email}]"]
|
||||
exam_text = [f"Candidate {self.cid} {name}[{self.email}]"]
|
||||
|
||||
for exam_type, exams in exam_list:
|
||||
exam_text.append(f"{'='*len(exam_type)}\n{exam_type}\n{'='*len(exam_type)}")
|
||||
|
||||
for exam in exams:
|
||||
print(exam)
|
||||
try:
|
||||
user_score = exam.user_scores[str(self.cid)]
|
||||
except KeyError:
|
||||
user_score = "Score not generated"
|
||||
t = exam.get_exam_stats()
|
||||
|
||||
try:
|
||||
percentage = (
|
||||
f" ({user_score / int(exam.stats_max_possible) * 100:.2f}%)"
|
||||
)
|
||||
except TypeError:
|
||||
percentage = ""
|
||||
|
||||
exam_text.append(
|
||||
f"""{t}
|
||||
# Score: {user_score} / {int(exam.stats_max_possible)}
|
||||
# Score: {user_score} / {int(exam.stats_max_possible)}{percentage}
|
||||
"""
|
||||
)
|
||||
|
||||
msg = "\n\n".join(exam_text)
|
||||
|
||||
print(msg)
|
||||
return msg
|
||||
|
||||
html_msg = f""""""
|
||||
@@ -430,6 +435,9 @@ class CidUser(models.Model):
|
||||
self.save()
|
||||
return True, ""
|
||||
|
||||
def get_email_results_url(self):
|
||||
return reverse("generic:candidate_email_results", kwargs={"cid": self.cid})
|
||||
|
||||
|
||||
class CidUserExam(models.Model):
|
||||
content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
|
||||
|
||||
Reference in New Issue
Block a user