This commit is contained in:
Ross
2022-05-31 23:40:50 +01:00
parent 4969723de9
commit 6d3cdedb95
8 changed files with 228 additions and 60 deletions
+1 -1
View File
@@ -10,7 +10,7 @@
<input type="submit" />
</form>
</details>
<h4>{{filter.qs|length}} exams found.</h4>
<h4 class="exam-number-title">{{filter.qs|length}} exams found.</h4>
{% for exam in filter.qs %}
<div class="">
<h1><a href="{% url app_name|add:':exam_overview' pk=exam.pk %}">Exam: {{ exam.name }} </a></h1>
+37 -4
View File
@@ -318,14 +318,15 @@ class ExamViews(View, LoginRequiredMixin):
# },
# },
# }
def __init__(self, data=None, *args, **kwargs):
# if filterset is bound, use initial values as defaults
if data is not None:
# get a mutable copy of the QueryDict
data = data.copy()
#for name, f in self.base_filters.items():
# filter param is either missing or empty, use initial as default
# for name, f in self.base_filters.items():
# filter param is either missing or empty, use initial as default
if not data.get("archive"):
data["archive"] = False
@@ -796,6 +797,8 @@ class ExamViews(View, LoginRequiredMixin):
app_exam_map = {}
app_exam_map["rapids"] = cid_user.rapid_exams
app_exam_map["anatomy"] = cid_user.anatomy_exams
app_exam_map["longs"] = cid_user.long_exams
app_exam_map["atlas"] = cid_user.casecollection_exams
if add:
@@ -815,6 +818,8 @@ class ExamViews(View, LoginRequiredMixin):
app_exam_map = {}
app_exam_map["rapids"] = user_user.user_rapid_exams
app_exam_map["anatomy"] = user_user.user_anatomy_exams
app_exam_map["longs"] = user_user.user_longs_exams
# app_exam_map["atlas"] = user_user.casecollection_exams
if add:
@@ -967,7 +972,8 @@ class ExamViews(View, LoginRequiredMixin):
# self.check_user_access(request.user, exam.pk)
if (
(
request.user.is_superuser
or (
self.app_name == "rapids"
and request.user.groups.filter(name="rapid_checker").exists()
)
@@ -986,7 +992,11 @@ class ExamViews(View, LoginRequiredMixin):
filter = self.ExamFilter(request.GET, queryset=exams)
return render(request, "generic/exam_index.html", {"filter": filter, "app_name": self.app_name})
return render(
request,
"generic/exam_index.html",
{"filter": filter, "app_name": self.app_name},
)
@method_decorator(login_required)
def exam_question_detail(self, request, pk, sk):
@@ -2064,3 +2074,26 @@ class UserUserGroupDelete(RevisionMixin, CidManagerRequiredMixin, DeleteView):
model = UserUserGroup
template_name = "confirm_delete.html"
success_url = reverse_lazy("generic:user_group_view")
class ExamCreateBase(RevisionMixin, LoginRequiredMixin, CreateView):
template_name = "exam_create_form.html"
def form_valid(self, form):
self.object = form.save(commit=False)
self.object.save()
form.instance.author.add(self.request.user.id)
return super().form_valid(form)
class ExamUpdateBase(RevisionMixin, LoginRequiredMixin, UpdateView):
template_name = "exam_update_form.html"
def form_valid(self, form):
self.object = form.save(commit=False)
self.object.save()
form.instance.author.add(self.request.user.id)
return super().form_valid(form)