Allow browsing user scores as admin
This commit is contained in:
+14
-1
@@ -1763,7 +1763,17 @@ class ExamViews(View, LoginRequiredMixin):
|
||||
def exam_scores_user(self, request, pk):
|
||||
return self.exam_scores_cid_user(request, pk)
|
||||
|
||||
def exam_scores_cid_user(self, request, pk, cid=None, passcode=""):
|
||||
@method_decorator(user_passes_test(lambda u: u.is_superuser))
|
||||
def exam_scores_user_admin(self, request, pk, user_id):
|
||||
user = User.objects.get(id=user_id)
|
||||
return self.exam_scores_cid_user(request, pk, user=user)
|
||||
|
||||
@method_decorator(user_passes_test(lambda u: u.is_superuser))
|
||||
def exam_scores_cid_user_admin(self, request, pk, cid):
|
||||
user = CidUser.objects.get(cid=cid)
|
||||
return self.exam_scores_cid_user(request, pk, cid, user.passcode)
|
||||
|
||||
def exam_scores_cid_user(self, request, pk, cid=None, passcode="", user=None):
|
||||
exam = get_object_or_404(self.Exam, pk=pk)
|
||||
|
||||
if not exam.exam_mode:
|
||||
@@ -1772,6 +1782,9 @@ class ExamViews(View, LoginRequiredMixin):
|
||||
if cid is not None and not exam.check_cid_user(cid, passcode, request):
|
||||
raise Http404("Error accessing exam")
|
||||
|
||||
if user is not None:
|
||||
request.user = user
|
||||
|
||||
questions = (
|
||||
exam.exam_questions.all()
|
||||
) # .prefetch_related("cid_user_answers", "answers")
|
||||
|
||||
Reference in New Issue
Block a user