add a redirct view mixin

This commit is contained in:
Ross
2024-08-12 11:58:28 +01:00
parent 8beb6890a7
commit c2185f73a6
8 changed files with 126 additions and 106 deletions
+19 -13
View File
@@ -85,7 +85,9 @@ from generic.views import (
ExamGroupsUpdateBase,
ExamUpdateBase,
ExamViews,
RedirectMixin,
SeriesImagesZipViewBase,
UpdateQuestionMixin,
)
from reversion.views import RevisionMixin
import reversion
@@ -155,7 +157,10 @@ def question_detail(request, pk):
# raise PermissionDenied
# logging.debug(long.subspecialty.first().name.all())
return render(request, "longs/question_detail.html", {"question": long})
can_edit = long.can_edit(request.user)
return render(
request, "longs/question_detail.html", {"question": long, "can_edit": can_edit}
)
@login_required
@@ -500,7 +505,7 @@ class LongCreate(LongCreateBase):
class LongUpdate(
RevisionMixin, LoginRequiredMixin, AuthorOrCheckerRequiredMixin, UpdateView
UpdateQuestionMixin,AuthorOrCheckerRequiredMixin
):
model = Long
form_class = LongForm
@@ -510,13 +515,9 @@ class LongUpdate(
# #initial = {'date_of_death': '05/01/2018'}
# exclude = [ 'created_date', 'published_date' ]
def get_form_kwargs(self):
kwargs = super(LongUpdate, self).get_form_kwargs()
kwargs.update({"user": self.request.user})
return kwargs
def get_context_data(self, **kwargs):
context = super(LongUpdate, self).get_context_data(**kwargs)
context = super().get_context_data(**kwargs)
if self.request.POST:
context["series_formset"] = SeriesFormSet(
self.request.POST, self.request.FILES, instance=self.object
@@ -563,6 +564,7 @@ class LongUpdate(
return super().form_invalid(form)
class LongClone(LongCreateBase):
"""Clones a existing long"""
@@ -643,12 +645,12 @@ class LongSeriesView(LoginRequiredMixin, SingleTableMixin, FilterView):
filterset_class = LongSeriesFilter
#@user_is_long_marker
# @user_is_long_marker
def mark_answer_override(request, exam_id, question_number, cid):
return mark_answer(request, exam_id, question_number, cid, override=True)
#@user_is_long_marker
# @user_is_long_marker
@reversion.create_revision()
def mark_answer(request, exam_id, question_number, answer_id, override=False):
exam = get_object_or_404(Exam, pk=exam_id)
@@ -847,7 +849,7 @@ def mark_answer(request, exam_id, question_number, answer_id, override=False):
# @user_passes_test(user_is_admin, login_url="/accounts/login")
@login_required
#@user_is_long_marker
# @user_is_long_marker
def mark(request, exam_id, sk):
exam = get_object_or_404(Exam, pk=exam_id)
@@ -902,8 +904,6 @@ def mark(request, exam_id, sk):
)
@login_required
@user_is_author_or_long_series_checker
def long_series_order_dicom(request, pk):
@@ -985,14 +985,20 @@ class ExamAuthorUpdate(
form_class = ExamAuthorForm
template_name = "author_form.html"
class ExamMarkersUpdate(
RevisionMixin, CheckCanEditMixin, LoginRequiredMixin, AuthorRequiredMixin, UpdateView
RevisionMixin,
CheckCanEditMixin,
LoginRequiredMixin,
AuthorRequiredMixin,
UpdateView,
):
model = Exam
form_class = ExamMarkerForm
template_name = "markers_form.html"
class ExamGroupsUpdate(ExamGroupsUpdateBase):
model = Exam
form_class = ExamGroupsForm