This commit is contained in:
Ross
2022-05-22 18:14:03 +01:00
parent a5b7d2a680
commit bbcbc02e0d
6 changed files with 22 additions and 32 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
{% extends "anatomy/base.html" %}
{% extends "anatomy/exams.html" %}
{% block js %}
{{ form.media }}
+1 -1
View File
@@ -1,4 +1,4 @@
{% extends "longs/base.html" %}
{% extends "longs/exams.html" %}
{% block js %}
{{ form.media }}
+1 -1
View File
@@ -1,4 +1,4 @@
{% extends "physics/base.html" %}
{% extends "physics/exams.html" %}
{% block js %}
{{ form.media }}
+2 -1
View File
@@ -1,10 +1,11 @@
{% extends "rapids/base.html" %}
{% extends "rapids/exams.html" %}
{% block js %}
{{ form.media }}
{% endblock %}
{% block content %}
<h2>Add Exam</h2>
<form action="" method="post">
{% csrf_token %}
+16 -27
View File
@@ -42,12 +42,7 @@ from .models import (
CidUserAnswer,
)
from generic.views import (
AuthorRequiredMixin,
ExamCloneMixin,
ExamViews,
GenericViewBase,
)
from generic.views import AuthorRequiredMixin, ExamCloneMixin, ExamViews, GenericViewBase
from reversion.views import RevisionMixin
@@ -355,8 +350,8 @@ class RapidUpdate(
def form_valid(self, form):
# save exam orders (there must be a better way to do this)
# exam_orders = {}
# for exam in self.object.exams.all():
#exam_orders = {}
#for exam in self.object.exams.all():
# exam_orders[exam] = list(exam.exam_questions.all())
self.object = form.save(commit=False)
@@ -376,8 +371,8 @@ class RapidUpdate(
answer_formset.save()
# restore exam orders
# wanted_exams = form["exams"].data
# for exam in self.object.exams.all():
#wanted_exams = form["exams"].data
#for exam in self.object.exams.all():
# if exam in exam_orders and self.object in exam_orders[exam]:
# print(exam_orders[exam])
# exam.exam_questions.set(exam_orders[exam])
@@ -514,6 +509,7 @@ class RapidView(LoginRequiredMixin, SingleTableMixin, FilterView):
filterset_class = RapidFilter
@login_required
def mark_all(request, exam_pk, sk):
return mark(request, exam_pk, sk, unmarked_exam_answers_only=False)
@@ -677,6 +673,7 @@ def mark(request, exam_pk, sk, unmarked_exam_answers_only=True, review=False):
)
def exam_scores_cid_user(request, pk, cid, passcode):
exam = get_object_or_404(Exam, pk=pk)
@@ -685,15 +682,13 @@ def exam_scores_cid_user(request, pk, cid, passcode):
# TODO:Need some kind of test for cid
questions = (
exam.exam_questions.all()
) # .prefetch_related("cid_user_answers", "answers")
questions = exam.exam_questions.all()#.prefetch_related("cid_user_answers", "answers")
# cid_user_answers = list(CidUserAnswer.objects.filter(cid=cid, exam__id=pk).prefetch_related("question"))
#cid_user_answers = list(CidUserAnswer.objects.filter(cid=cid, exam__id=pk).prefetch_related("question"))
# cid_user_answers_q_map = {}
#cid_user_answers_q_map = {}
# for ans in cid_user_answers:
#for ans in cid_user_answers:
# cid_user_answers_q_map[ans.question] = ans
answers_and_marks = []
@@ -707,7 +702,7 @@ def exam_scores_cid_user(request, pk, cid, passcode):
for q in questions:
# Get user answer
user_answer = q.cid_user_answers.filter(cid=cid, exam__id=pk).first()
# user_answer = cid_user_answers_q_map[q]
#user_answer = cid_user_answers_q_map[q]
if not user_answer or user_answer is None:
# skip if no answer
@@ -767,7 +762,9 @@ class QuestionDelete(AuthorOrCheckerRequiredMixin, DeleteView):
success_url = reverse_lazy("rapids:rapid_view")
GenericExamViews = ExamViews(Exam, Rapid, Answer, CidUserAnswer, "rapids", "rapid")
GenericExamViews = ExamViews(
Exam, Rapid, Answer, CidUserAnswer, "rapids", "rapid"
)
class ExamCreate(RevisionMixin, LoginRequiredMixin, CreateView):
@@ -796,24 +793,18 @@ class ExamUpdate(
return super().form_valid(form)
class ExamAuthorUpdate(
RevisionMixin, LoginRequiredMixin, AuthorRequiredMixin, UpdateView
):
class ExamAuthorUpdate(RevisionMixin, LoginRequiredMixin, AuthorRequiredMixin, UpdateView):
model = Exam
form_class = ExamAuthorForm
class ExamDelete(RevisionMixin, AuthorOrCheckerRequiredMixin, DeleteView):
model = Exam
template_name = "exam_confirm_delete.html"
success_url = reverse_lazy("rapids:index")
class UserAnswerView(LoginRequiredMixin, DetailView):
model = CidUserAnswer
class UserAnswerTableView(LoginRequiredMixin, SingleTableMixin, FilterView):
model = CidUserAnswer
table_class = RapidUserAnswerTable
@@ -930,7 +921,6 @@ class RapidLateralityViewSet(
GenericViews = GenericViewBase("rapids", Rapid, CidUserAnswer, Exam)
@user_is_author_or_rapid_checker
def question_anonymise_dicom(request, pk):
question = get_object_or_404(Rapid, pk=pk)
@@ -939,7 +929,6 @@ def question_anonymise_dicom(request, pk):
return redirect("rapids:question_detail", pk=pk)
@user_is_author_or_rapid_checker
def question_save_annotation(request, pk):
if request.is_ajax() and request.method == "POST":
+1 -1
View File
@@ -1,4 +1,4 @@
{% extends "sbas/base.html" %}
{% extends "sbas/exams.html" %}
{% block js %}
{{ form.media }}