This commit is contained in:
Ross
2021-12-15 19:48:08 +00:00
parent c7311fe1f5
commit f6282193af
12 changed files with 76 additions and 33 deletions
+31 -8
View File
@@ -215,9 +215,10 @@ def generic_exam_json_edit(request):
class ExamViews(View, LoginRequiredMixin):
def __init__(self, exam, question, app, question_type, loadJsonAnswer):
def __init__(self, exam, question, cid_user_answer, app, question_type, loadJsonAnswer):
self.Exam = exam
self.Question = question
self.CidUserAnswer = cid_user_answer
self.app_name = app
self.question_type = question_type
self.loadJsonAnswer = loadJsonAnswer
@@ -417,6 +418,29 @@ class ExamViews(View, LoginRequiredMixin):
},
)
@method_decorator(login_required)
def exam_scores_refresh(self, request, pk):
exam = get_object_or_404(self.Exam, pk=pk)
if not exam.exam_mode:
raise Http404("Packet not in exam mode")
questions = exam.exam_questions.all()
cids = self.CidUserAnswer.objects.filter(question__in=questions, exam__id=pk)
# Force a score update
for c in cids:
c.get_answer_score(cached=False)
return render(
request,
"rapids/base.html",
{
"simple_content": "Answer scores updated",
},
)
@method_decorator(login_required)
def exam_cids(self, request, exam_id):
exam = get_object_or_404(self.Exam, pk=exam_id)
@@ -966,17 +990,13 @@ class CidUserView(LoginRequiredMixin, SingleTableMixin, FilterView):
context = super().get_context_data(**kwargs)
# user = self.request.user
filters = { "archive": False, "exam_mode": True}
filters = {"archive": False, "exam_mode": True}
physics_exams = [
(i.name, i.pk) for i in PhysicsExam.objects.filter(**filters)
]
physics_exams = [(i.name, i.pk) for i in PhysicsExam.objects.filter(**filters)]
rapid_exams = [(i.name, i.pk) for i in RapidExam.objects.filter(**filters)]
sba_exams = [(i.name, i.pk) for i in SbasExam.objects.filter(**filters)]
longs_exams = [(i.name, i.pk) for i in LongExam.objects.filter(**filters)]
anatomy_exams = [
(i.name, i.pk) for i in AnatomyExam.objects.filter(**filters)
]
anatomy_exams = [(i.name, i.pk) for i in AnatomyExam.objects.filter(**filters)]
cid_user_groups = [
(i.name, i.pk) for i in CidUserGroup.objects.filter(archive=False)
@@ -990,6 +1010,7 @@ class CidUserView(LoginRequiredMixin, SingleTableMixin, FilterView):
context["cid_user_groups"] = cid_user_groups
return context
@login_required
@user_is_cid_user_manager
def group_view(request):
@@ -1001,6 +1022,7 @@ def group_view(request):
{"groups": groups},
)
@login_required
@user_is_cid_user_manager
def group_email(request, pk):
@@ -1017,6 +1039,7 @@ def group_email(request, pk):
{"users": users},
)
@login_required
@user_is_cid_user_manager
def manage_cid_users(request):