.
This commit is contained in:
+30
-7
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user