diff --git a/generic/models.py b/generic/models.py index a950d0d2..f0227c4f 100644 --- a/generic/models.py +++ b/generic/models.py @@ -317,11 +317,7 @@ class CidUser(models.Model): return available_exams - def email_results(self, resend=False): - if self.results_email_sent and not resend: - return False, "Already sent." - - # Get a list of taken exams + def generate_exam_report(self): exam_list = self.get_cid_exams() exam_text = [] @@ -346,9 +342,17 @@ class CidUser(models.Model): msg = "\n\n".join(exam_text) print(msg) + return msg html_msg = f"""""" + def email_results(self, resend=False): + if self.results_email_sent and not resend: + return False, "Already sent." + + # Get a list of taken exams + msg = self.generate_exam_report() + try: send_mail( f"{self.group} results", diff --git a/rad/views.py b/rad/views.py index 59bc7565..1e571c2b 100644 --- a/rad/views.py +++ b/rad/views.py @@ -92,37 +92,13 @@ def cid_results(request, cid): if not cid_user: raise Http404("CID not found") - EXAM_ANSWER_MAP = { - "physics": (PhysicsCidUserAnswer, PhysicsExam), - "anatomy": (AnatomyCidUserAnswer, AnatomyExam), - "rapids": (RapidsCidUserAnswer, RapidsExam), - "longs": (LongsCidUserAnswer, LongsExam), - "sbas": (SbasCidUserAnswer, SbasExam), - } - kwargs = {"exam_mode": True} - - exams = [] - for exam_type in EXAM_ANSWER_MAP: - CidUserAnswer, Exam = EXAM_ANSWER_MAP[exam_type] - exam_answers = CidUserAnswer.objects.filter(cid=cid) - exam_ids = exam_answers.values_list("exam").distinct() - exams.append((exam_type, Exam.objects.filter(id__in=exam_ids, **kwargs))) - - available_exams = cid_user.get_cid_exams() + report = cid_user.generate_exam_report() return render( request, "cid_results.html", { - # "physics_exams": physics_exams, - # "anatomy_exams": anatomy_exams, - # "rapid_exams": rapid_exams, - # "longs_exams": longs_exams, - # "sba_exams": sba_exams, - "all_exams": exams, - "cid": cid, - "cid_user": cid_user, - "available_exams": available_exams, + "report": report, }, ) diff --git a/templates/cid_results.html b/templates/cid_results.html index c5fc0078..4e5a2fde 100644 --- a/templates/cid_results.html +++ b/templates/cid_results.html @@ -2,29 +2,7 @@ {% block content %}
-

CID: {{ cid }}

-

The following exams will be available to take when active. - {% for exam_type, exams in available_exams %} -

{{exam_type}}

- - {% endfor %} + {{report}} +
-

Exam results

- The following exam results been found. Click to view answers (and scores when the results are published): - {% for exam_type, exams in all_exams %} - {% if exams %} -

{{exam_type|title}}

- - {% endif %} - {% endfor %} - - {% endblock %}