This commit is contained in:
Ross
2021-12-31 13:22:48 +00:00
parent 3a4d9cbb5a
commit 2797fe2581
5 changed files with 114 additions and 13 deletions
+1
View File
@@ -58,6 +58,7 @@ urlpatterns = [
path("", TemplateView.as_view(template_name="index.html"), name="home"),
path("cid/<int:pk>/<str:passcode>", views.cid_scores, name="cid_scores"),
path("cid/<int:cid>/", views.cid_scores_admin, name="cid_scores_admin"),
path("cid/<int:cid>/results", views.cid_results, name="cid_results"),
path("cid/", views.cid_selector, name="cid_selector"),
# Global url that registers RTS compatible exams
path("exam/json/", views.active_exams, name="active_exams"),
+43
View File
@@ -84,6 +84,49 @@ def cid_scores_admin(request, cid):
return cid_scores(request, cid_user.cid, cid_user.passcode)
@login_required
@user_passes_test(lambda u: u.is_superuser)
def cid_results(request, cid):
cid_user = CidUser.objects.filter(cid=cid).first()
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()
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,
},
)
def cid_scores(request, pk, passcode):
# exam = get_object_or_404(Exam, pk=pk)