.
This commit is contained in:
+31
-8
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user