start allowing user candidates in longs

This commit is contained in:
Ross
2023-05-15 10:54:09 +01:00
parent cd5cbdd1a5
commit 525373f393
7 changed files with 62 additions and 55 deletions
+8 -17
View File
@@ -354,7 +354,9 @@ class ExamViews(View, LoginRequiredMixin):
# We give some users the ability to filter by authors
class ExtraExamFilter(BasicExamFilter):
author = ModelMultipleChoiceFilter(queryset=User.objects.all(), null_label="No author")
author = ModelMultipleChoiceFilter(
queryset=User.objects.all(), null_label="No author"
)
self.ExtraExamFilter = ExtraExamFilter
@@ -476,7 +478,6 @@ class ExamViews(View, LoginRequiredMixin):
def exam_toggle_archived(self, request, pk):
print("TOGGLE ARCHIVED", request.POST)
if request.method == "POST":
if not self.check_user_edit_access(request.user):
data = {"status": "error, insufficient permission"}
return JsonResponse(data, status=400)
@@ -500,7 +501,6 @@ class ExamViews(View, LoginRequiredMixin):
@method_decorator(login_required)
def exam_toggle_results_published(self, request, pk):
if request.method == "POST":
if not self.check_user_edit_access(request.user):
data = {"status": "error, insufficient permission"}
return JsonResponse(data, status=400)
@@ -525,7 +525,6 @@ class ExamViews(View, LoginRequiredMixin):
@method_decorator(login_required)
def exam_toggle_active(self, request, pk):
if request.method == "POST":
if not self.check_user_edit_access(request.user):
data = {"status": "error, insufficient permission"}
return JsonResponse(data, status=400)
@@ -576,7 +575,6 @@ class ExamViews(View, LoginRequiredMixin):
@method_decorator(login_required)
def exam_list(self, request, all=False):
if not self.check_user_access(request.user):
# raise PermissionDenied
exam_list = self.Exam.objects.filter(author__id=request.user.id).order_by(
@@ -1041,7 +1039,6 @@ class ExamViews(View, LoginRequiredMixin):
@method_decorator(login_required)
def exam_json_edit(self, request, pk):
if request.method == "POST":
if request.user.groups.filter(name="cid_user_manager").exists():
# This may give more permissions than we actually want
pass
@@ -1236,7 +1233,6 @@ class ExamViews(View, LoginRequiredMixin):
@method_decorator(login_required)
def index(self, request):
# self.check_user_access(request.user, exam.pk)
if (
@@ -1260,7 +1256,6 @@ class ExamViews(View, LoginRequiredMixin):
exams = self.Exam.objects.filter(author__id=request.user.id)
filter = self.BasicExamFilter(request.GET, queryset=exams)
return render(
request,
"generic/exam_index.html",
@@ -1382,7 +1377,6 @@ class ExamViews(View, LoginRequiredMixin):
@method_decorator(csrf_exempt)
def post_exam_answers(self, request):
if request.method == "POST":
n = 0
for answer in json.loads(request.POST.get("answers")):
@@ -1444,7 +1438,6 @@ class ExamViews(View, LoginRequiredMixin):
match self.app_name:
case "rapids":
# Normal answers are just posted with the answer "Normal"
normal = False
if posted_answer == "Normal":
@@ -1566,7 +1559,6 @@ class ExamViews(View, LoginRequiredMixin):
return self.exam_json_unbased(request, pk, cid, passcode)
def exam_json(self, request, pk, cid=None, passcode=None):
exam: ExamBase = get_object_or_404(self.Exam, pk=pk)
# Check access (for logged in users when inactive)
@@ -1643,7 +1635,11 @@ class ExamViews(View, LoginRequiredMixin):
"""
exam: ExamBase = get_object_or_404(self.Exam, pk=pk)
if exam.exam_mode and not exam.active and not self.check_user_access(request.user, pk):
if (
exam.exam_mode
and not exam.active
and not self.check_user_access(request.user, pk)
):
raise Http404("No available exam")
# Check access for users
@@ -1719,7 +1715,6 @@ class ExamViews(View, LoginRequiredMixin):
if not exam.check_cid_user(cid, passcode, request, user_id):
raise Http404("No available exam")
return redirect("{}:question_json_unbased".format(self.app_name), pk=sk)
redirect()
@@ -1823,7 +1818,6 @@ class ExamViews(View, LoginRequiredMixin):
}
if self.normalise_score is not None:
normalised_score = self.normalise_score(total_score)
template_context["normalised_score"] = normalised_score
@@ -1948,7 +1942,6 @@ class ExamViews(View, LoginRequiredMixin):
user_scores_normalised = {}
user_answer_count = {}
for user in user_answers_marks:
if self.app_name in ("rapids", "anatomy", "sbas"):
user_scores[user] = sum(
[i for i in user_answers_marks[user] if i != "unmarked"]
@@ -2364,7 +2357,6 @@ def users_bulk_delete_supervisors(request):
@user_is_cid_user_manager
def users_bulk_edit_grade(request):
if request.htmx.trigger == "bulk-edit-grade-button":
user_grades = UserGrades.objects.all()
@@ -2848,7 +2840,6 @@ def create_user(request, context=None):
)
try:
user_profile = UserProfile.objects.get(user=new_user)
user_profile.peninsula_trainee = True