.
This commit is contained in:
+29
-3
@@ -560,6 +560,20 @@ class ExamViews(View, LoginRequiredMixin):
|
||||
},
|
||||
)
|
||||
|
||||
@method_decorator(login_required)
|
||||
def exam_user(self, request, exam_id, user_id):
|
||||
exam = get_object_or_404(self.Exam.objects.prefetch_related("author"), pk=exam_id)
|
||||
|
||||
if request.user not in exam.author.all():
|
||||
if not self.check_user_access(request.user, exam_id):
|
||||
raise PermissionDenied
|
||||
|
||||
user = User.objects.get(pk=user_id)
|
||||
user_exam = exam.get_or_create_cid_user_exam(user_user=user)
|
||||
|
||||
return JsonResponse(model_to_dict(user_exam))
|
||||
|
||||
|
||||
@method_decorator(login_required)
|
||||
def exam_report_email_status(self, request, exam_id):
|
||||
exam = get_object_or_404(self.Exam.objects.prefetch_related("author"), pk=exam_id)
|
||||
@@ -578,9 +592,12 @@ class ExamViews(View, LoginRequiredMixin):
|
||||
|
||||
return JsonResponse(status)
|
||||
|
||||
@method_decorator(login_required)
|
||||
def exam_report_email_unsent(self, request, exam_id):
|
||||
return self.exam_report_email(request, exam_id, unsent_only=True)
|
||||
|
||||
@method_decorator(login_required)
|
||||
def exam_report_email(self, request, exam_id):
|
||||
def exam_report_email(self, request, exam_id, unsent_only=False):
|
||||
exam = get_object_or_404(self.Exam.objects.prefetch_related("author"), pk=exam_id)
|
||||
|
||||
if request.user not in exam.author.all():
|
||||
@@ -606,13 +623,22 @@ class ExamViews(View, LoginRequiredMixin):
|
||||
email_results = {}
|
||||
for u in users:
|
||||
user = User.objects.get(pk=u)
|
||||
user_exam = exam.get_or_create_cid_user_exam(user_user=user)
|
||||
|
||||
if unsent_only and user_exam.results_emailed_status:
|
||||
continue
|
||||
#print(user, user_exam.results_emailed_status)
|
||||
#if json.loads(user_exam.results_emailed_status)[0] == True:
|
||||
# continue
|
||||
|
||||
|
||||
if additional_email:
|
||||
email_results[user.username] = exam.email_user_results(user, additional_emails=[additional_email])
|
||||
else:
|
||||
email_results[user.username] = exam.email_user_results(user)
|
||||
email_results[user.username].append(f" {time}")
|
||||
user_exam.results_emailed_status = json.dumps(email_results[user.username])
|
||||
|
||||
user_exam = exam.get_or_create_cid_user_exam(user_user=user)
|
||||
user_exam.results_emailed_status = json.dumps(email_results[user.username]) + f" {time}"
|
||||
user_exam.save()
|
||||
|
||||
exam.exam_results_emailed = time
|
||||
|
||||
Reference in New Issue
Block a user