Refactor ExamCollection views to enforce author requirements and improve access control

This commit is contained in:
Ross
2025-12-29 09:44:29 +00:00
parent 112c96dc00
commit 17330681a2
+7 -7
View File
@@ -5734,7 +5734,7 @@ class SupervisorList(CidManagerRequiredMixin, SingleTableMixin, FilterView):
filterset_class = SupervisorFilter
class ExamCollectionList(ListView):
class ExamCollectionList(LoginRequiredMixin, ListView):
model = ExamCollection
def get_queryset(self):
@@ -5816,11 +5816,11 @@ class ExamCollectionList(ListView):
return qs
class ExamCollectionDetail(DetailView, AuthorRequiredMixin):
class ExamCollectionDetail(AuthorRequiredMixin, DetailView):
model = ExamCollection
class ExamCollectionEdit(UpdateView, AuthorRequiredMixin):
class ExamCollectionEdit(AuthorRequiredMixin, UpdateView):
model = ExamCollection
form_class = ExamCollectionForm
@@ -5839,7 +5839,7 @@ class ExamCollectionEdit(UpdateView, AuthorRequiredMixin):
return context
class ExamCollectionCreate(CreateView, AuthorRequiredMixin):
class ExamCollectionCreate(AuthorRequiredMixin, CreateView):
model = ExamCollection
form_class = ExamCollectionForm
@@ -5857,7 +5857,7 @@ class ExamCollectionCreate(CreateView, AuthorRequiredMixin):
return context
class ExamCollectionClone(CreateView, AuthorRequiredMixin):
class ExamCollectionClone(AuthorRequiredMixin, CreateView):
model = ExamCollection
template_name = "generic/examcollection_clone_form.html"
form_class = ExamCollectionCloneForm
@@ -5971,7 +5971,7 @@ class ExamCollectionClone(CreateView, AuthorRequiredMixin):
return HttpResponseRedirect(object.get_absolute_url())
class ExamCollectionDelete(DeleteView, AuthorRequiredMixin):
class ExamCollectionDelete(AuthorRequiredMixin, DeleteView):
model = ExamCollection
template_name = "confirm_delete.html"
success_url = reverse_lazy("generic:examcollection_list")
@@ -5991,7 +5991,7 @@ class ExaminationDelete(RevisionMixin, SuperuserRequiredMixin, DeleteView):
success_url = reverse_lazy("generic:examination_view")
class ExaminationUpdate(UpdateView, SuperuserRequiredMixin):
class ExaminationUpdate(SuperuserRequiredMixin, UpdateView):
model = Examination
form_class = ExaminationForm