allow adding users to exams by group
This commit is contained in:
@@ -133,6 +133,17 @@ class CidManagerRequiredMixin(UserPassesTestMixin):
|
||||
# return obj
|
||||
# raise PermissionDenied() # or Http404
|
||||
|
||||
def get_exam_model_from_app_name(app_name: str) -> ExamBase:
|
||||
EXAM_MAP = {
|
||||
"physics": PhysicsExam,
|
||||
"anatomy": AnatomyExam,
|
||||
"rapids": RapidsExam,
|
||||
"longs": LongsExam,
|
||||
"sbas": SbasExam,
|
||||
}
|
||||
|
||||
return EXAM_MAP[app_name]
|
||||
|
||||
|
||||
def normaliseRapidsScore(score):
|
||||
if score == 49:
|
||||
@@ -2709,6 +2720,30 @@ def cid_group_view_all(request):
|
||||
{"groups": groups, "view_all": True},
|
||||
)
|
||||
|
||||
@user_is_cid_user_manager
|
||||
def user_group_add_candidates_to_exams(request, group_id):
|
||||
if request.htmx:
|
||||
group = get_object_or_404(UserUserGroup, pk=group_id)
|
||||
|
||||
exam_id = request.POST.get("exam_id")
|
||||
exam_type = request.POST.get("exam_type")
|
||||
|
||||
ExamModel = get_exam_model_from_app_name(exam_type)
|
||||
|
||||
exam = get_object_or_404(ExamModel, pk=exam_id)
|
||||
|
||||
if request.POST.get("action") == "remove":
|
||||
exam.valid_user_users.remove(*group.users.all())
|
||||
return HttpResponse(f"Candidates removed")
|
||||
else:
|
||||
exam.valid_user_users.add(*group.users.all())
|
||||
return HttpResponse(f"Candidates added")
|
||||
#exam.save()
|
||||
|
||||
|
||||
|
||||
raise PermissionDenied() # or Http404
|
||||
pass
|
||||
|
||||
@user_is_cid_user_manager
|
||||
def user_group_view_detail(request, group_id):
|
||||
|
||||
Reference in New Issue
Block a user