.
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user