High candidates that have submitted results

This commit is contained in:
Ross
2023-01-09 14:04:17 +00:00
parent 822c6c65c0
commit 6f89604d14
4 changed files with 72 additions and 20 deletions
+14 -2
View File
@@ -999,14 +999,26 @@ class ExamViews(View, LoginRequiredMixin):
return notes
def exam_user_status(self, request, pk):
def exam_user_status_cid(self, request, pk, cid):
return self.exam_user_status(request, pk, cid=cid)
def exam_user_status_user(self, request, pk, user_id):
return self.exam_user_status(request, pk, user_id=user_id)
def exam_user_status(self, request, pk, cid=None, user_id=None):
# TODO: add filtering by user / cid
exam = get_object_or_404(self.Exam, pk=pk)
# Restrict just to exam authors
if request.user not in exam.author.all():
raise PermissionDenied
statuses = exam.exam_user_status.all()
if cid is not None:
statuses = exam.exam_user_status.filter(cid_user__cid=cid)
elif user_id is not None:
statuses = exam.exam_user_status.filter(user_user__id=user_id)
else:
statuses = exam.exam_user_status.all()
return render(request, "exam_user_status.html", {"exam": exam, "statuses": statuses})