.
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
{% extends "anatomy/base.html" %}
|
{% extends "anatomy/exams.html" %}
|
||||||
|
|
||||||
{% block js %}
|
{% block js %}
|
||||||
{{ form.media }}
|
{{ form.media }}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{% extends "longs/base.html" %}
|
{% extends "longs/exams.html" %}
|
||||||
|
|
||||||
{% block js %}
|
{% block js %}
|
||||||
{{ form.media }}
|
{{ form.media }}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{% extends "physics/base.html" %}
|
{% extends "physics/exams.html" %}
|
||||||
|
|
||||||
{% block js %}
|
{% block js %}
|
||||||
{{ form.media }}
|
{{ form.media }}
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
{% extends "rapids/base.html" %}
|
{% extends "rapids/exams.html" %}
|
||||||
|
|
||||||
{% block js %}
|
{% block js %}
|
||||||
{{ form.media }}
|
{{ form.media }}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
<h2>Add Exam</h2>
|
<h2>Add Exam</h2>
|
||||||
<form action="" method="post">
|
<form action="" method="post">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
|
|||||||
+8
-19
@@ -42,12 +42,7 @@ from .models import (
|
|||||||
CidUserAnswer,
|
CidUserAnswer,
|
||||||
)
|
)
|
||||||
|
|
||||||
from generic.views import (
|
from generic.views import AuthorRequiredMixin, ExamCloneMixin, ExamViews, GenericViewBase
|
||||||
AuthorRequiredMixin,
|
|
||||||
ExamCloneMixin,
|
|
||||||
ExamViews,
|
|
||||||
GenericViewBase,
|
|
||||||
)
|
|
||||||
|
|
||||||
from reversion.views import RevisionMixin
|
from reversion.views import RevisionMixin
|
||||||
|
|
||||||
@@ -514,6 +509,7 @@ class RapidView(LoginRequiredMixin, SingleTableMixin, FilterView):
|
|||||||
filterset_class = RapidFilter
|
filterset_class = RapidFilter
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
def mark_all(request, exam_pk, sk):
|
def mark_all(request, exam_pk, sk):
|
||||||
return mark(request, exam_pk, sk, unmarked_exam_answers_only=False)
|
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):
|
def exam_scores_cid_user(request, pk, cid, passcode):
|
||||||
exam = get_object_or_404(Exam, pk=pk)
|
exam = get_object_or_404(Exam, pk=pk)
|
||||||
|
|
||||||
@@ -685,9 +682,7 @@ def exam_scores_cid_user(request, pk, cid, passcode):
|
|||||||
|
|
||||||
# TODO:Need some kind of test for cid
|
# TODO:Need some kind of test for cid
|
||||||
|
|
||||||
questions = (
|
questions = exam.exam_questions.all()#.prefetch_related("cid_user_answers", "answers")
|
||||||
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"))
|
||||||
|
|
||||||
@@ -767,7 +762,9 @@ class QuestionDelete(AuthorOrCheckerRequiredMixin, DeleteView):
|
|||||||
success_url = reverse_lazy("rapids:rapid_view")
|
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):
|
class ExamCreate(RevisionMixin, LoginRequiredMixin, CreateView):
|
||||||
@@ -796,24 +793,18 @@ class ExamUpdate(
|
|||||||
|
|
||||||
return super().form_valid(form)
|
return super().form_valid(form)
|
||||||
|
|
||||||
|
class ExamAuthorUpdate(RevisionMixin, LoginRequiredMixin, AuthorRequiredMixin, UpdateView):
|
||||||
class ExamAuthorUpdate(
|
|
||||||
RevisionMixin, LoginRequiredMixin, AuthorRequiredMixin, UpdateView
|
|
||||||
):
|
|
||||||
model = Exam
|
model = Exam
|
||||||
form_class = ExamAuthorForm
|
form_class = ExamAuthorForm
|
||||||
|
|
||||||
|
|
||||||
class ExamDelete(RevisionMixin, AuthorOrCheckerRequiredMixin, DeleteView):
|
class ExamDelete(RevisionMixin, AuthorOrCheckerRequiredMixin, DeleteView):
|
||||||
model = Exam
|
model = Exam
|
||||||
template_name = "exam_confirm_delete.html"
|
template_name = "exam_confirm_delete.html"
|
||||||
success_url = reverse_lazy("rapids:index")
|
success_url = reverse_lazy("rapids:index")
|
||||||
|
|
||||||
|
|
||||||
class UserAnswerView(LoginRequiredMixin, DetailView):
|
class UserAnswerView(LoginRequiredMixin, DetailView):
|
||||||
model = CidUserAnswer
|
model = CidUserAnswer
|
||||||
|
|
||||||
|
|
||||||
class UserAnswerTableView(LoginRequiredMixin, SingleTableMixin, FilterView):
|
class UserAnswerTableView(LoginRequiredMixin, SingleTableMixin, FilterView):
|
||||||
model = CidUserAnswer
|
model = CidUserAnswer
|
||||||
table_class = RapidUserAnswerTable
|
table_class = RapidUserAnswerTable
|
||||||
@@ -930,7 +921,6 @@ class RapidLateralityViewSet(
|
|||||||
|
|
||||||
GenericViews = GenericViewBase("rapids", Rapid, CidUserAnswer, Exam)
|
GenericViews = GenericViewBase("rapids", Rapid, CidUserAnswer, Exam)
|
||||||
|
|
||||||
|
|
||||||
@user_is_author_or_rapid_checker
|
@user_is_author_or_rapid_checker
|
||||||
def question_anonymise_dicom(request, pk):
|
def question_anonymise_dicom(request, pk):
|
||||||
question = get_object_or_404(Rapid, pk=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)
|
return redirect("rapids:question_detail", pk=pk)
|
||||||
|
|
||||||
|
|
||||||
@user_is_author_or_rapid_checker
|
@user_is_author_or_rapid_checker
|
||||||
def question_save_annotation(request, pk):
|
def question_save_annotation(request, pk):
|
||||||
if request.is_ajax() and request.method == "POST":
|
if request.is_ajax() and request.method == "POST":
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{% extends "sbas/base.html" %}
|
{% extends "sbas/exams.html" %}
|
||||||
|
|
||||||
{% block js %}
|
{% block js %}
|
||||||
{{ form.media }}
|
{{ form.media }}
|
||||||
|
|||||||
Reference in New Issue
Block a user