This commit is contained in:
Ross
2021-12-17 16:15:16 +00:00
parent 4a637d469c
commit f068cf6ca0
2 changed files with 46 additions and 15 deletions
+45
View File
@@ -216,6 +216,14 @@ class QuestionNote(models.Model):
class CidUser(models.Model):
EXAM_TYPES = (
("Physics", "physics_exams"),
("Rapids", "rapid_exams"),
("SBAs", "sba_exams"),
("Anatomy", "anatomy_exams"),
("Longs", "longs_exams"),
)
cid = models.IntegerField(blank=True, null=True, unique=True)
passcode = models.CharField(blank=True, max_length=50)
active = models.BooleanField(default=True)
@@ -225,6 +233,7 @@ class CidUser(models.Model):
supervisor_email = models.EmailField(blank=True)
login_email_sent = models.BooleanField(default=False)
results_email_sent = models.BooleanField(default=False)
group = models.ForeignKey("CidUserGroup", on_delete=models.SET_NULL, null=True)
@@ -234,6 +243,42 @@ class CidUser(models.Model):
def check_passcode(self, passcode) -> bool:
return self.passcode == passcode
def get_cid_exams(self):
available_exams = []
for n, t in self.EXAM_TYPES:
exam_rel = getattr(self, t)
if exam_rel.exists():
exams = exam_rel.filter(exam_mode=True)
available_exams.append((n, exams))
return available_exams
def email_results(self, resend=False):
if self.results_email_sent and not resend:
return False, "Already sent."
msg = f"""
"""
html_msg = f""""""
try:
send_mail(
f"{self.group} results",
msg,
"test@xkjq.uk",
[self.email, self.supervisor_email],
fail_silently=False,
html_message=html_msg
)
except SMTPException as e:
return False, e
self.results_email_sent = True
self.save()
return True, ""
def email_details(self, resend=False):
if self.login_email_sent and not resend:
return False, "Already sent."
+1 -15
View File
@@ -124,21 +124,7 @@ def cid_scores(request, pk, passcode):
sbas_exam_ids = sbas_answers.values_list("exam").distinct()
sba_exams = SbasExam.objects.filter(id__in=sbas_exam_ids, **kwargs)
available_exams = []
exam_types = (
("Physics", "physics_exams"),
("Rapids", "rapid_exams"),
("SBAs", "sba_exams"),
("Anatomy", "anatomy_exams"),
("Longs", "longs_exams"),
)
for n, t in exam_types:
exam_rel = getattr(cid_user, t)
if exam_rel.exists():
exams = exam_rel.filter(exam_mode=True)
available_exams.append((n, exams))
available_exams = cid_user.get_cid_exams()
return render(
request,