This commit is contained in:
Ross
2022-06-07 21:32:49 +01:00
parent 349654a22b
commit 45100f27b0
11 changed files with 136 additions and 141 deletions
+30 -7
View File
@@ -32,7 +32,7 @@ import urllib
from django.views import View
from django.views.generic.edit import CreateView, UpdateView, DeleteView
from django_filters.views import FilterView
from django_filters import FilterSet
from django_filters import FilterSet, OrderingFilter
from django_tables2.views import SingleTableMixin
from reversion.views import RevisionMixin
from atlas.models import CaseCollection
@@ -294,6 +294,8 @@ class ExamViews(View, LoginRequiredMixin):
# exam_group = group_map[self.app_name]
class ExamFilter(FilterSet):
sort_order = OrderingFilter(fields=(("name", "name"), ("exam_mode", "exam_mode")))
class Meta:
model = exam
fields = {
@@ -329,6 +331,8 @@ class ExamViews(View, LoginRequiredMixin):
# filter param is either missing or empty, use initial as default
if not data.get("archive"):
data["archive"] = False
if not data.get("sort_order"):
data["sort_order"] = "name"
super().__init__(data, *args, **kwargs)
@@ -523,15 +527,18 @@ class ExamViews(View, LoginRequiredMixin):
@method_decorator(login_required)
def exam_list(self, request, all=False):
if all:
exams = self.Exam.objects.all().order_by("name")
if not self.check_user_access(request.user):
#raise PermissionDenied
exam_list = self.Exam.objects.filter(author__id=request.user.id).order_by("name")
else:
exams = self.Exam.objects.filter(exam_mode=True, archive=False).order_by(
exam_list = self.Exam.objects.all().order_by("name")
if not all:
exams = exam_list.filter(exam_mode=True, archive=False).order_by(
"name"
)
if not self.check_user_access(request.user):
raise PermissionDenied
marking = False
@@ -1021,7 +1028,7 @@ class ExamViews(View, LoginRequiredMixin):
view_feedback = False
if (
#request.user.groups.filter(name=self.checker_group).exists() or
# request.user.groups.filter(name=self.checker_group).exists() or
request.user.groups.filter(name="feedback_checker").exists()
or request.user in question.author.all()
):
@@ -2095,6 +2102,14 @@ class ExamCreateBase(RevisionMixin, LoginRequiredMixin, CreateView):
form.instance.author.add(self.request.user.id)
return super().form_valid(form)
def get_context_data(self, **kwargs):
# Call the base implementation first to get a context
context = super().get_context_data(**kwargs)
print(dir(context["view"]))
print(context["view"].template_name_suffix)
print(context["view"].model.app_name)
return context
class ExamUpdateBase(RevisionMixin, LoginRequiredMixin, UpdateView):
template_name = "exam_update_form.html"
@@ -2106,3 +2121,11 @@ class ExamUpdateBase(RevisionMixin, LoginRequiredMixin, UpdateView):
form.instance.author.add(self.request.user.id)
return super().form_valid(form)
class ExamDeleteBase(RevisionMixin, DeleteView):
template_name = "exam_confirm_delete.html"
def get_success_url(self) -> str:
# return super().get_success_url()(self):
return reverse_lazy(f"{self.model.app_name}:index")