Use partials everywhere

This commit is contained in:
2026-09-06 14:46:29 +02:00
parent ec5b964ac3
commit d0bbdcdfcf
9 changed files with 127 additions and 143 deletions
+11 -28
View File
@@ -26,6 +26,7 @@ from django.contrib.auth.mixins import PermissionRequiredMixin
from django.db.models import Exists, OuterRef
from django.shortcuts import get_object_or_404
from django.urls import reverse, reverse_lazy
from django.utils.functional import cached_property
from django.views.generic import (
CreateView,
DeleteView,
@@ -54,12 +55,9 @@ class UECommentCreateView(PermissionRequiredMixin, FragmentMixin, CreateView):
permission_required = "pedagogy.add_uecomment"
object = None # Avoid initialisation bug with FragmentMixin
@property
@cached_property
def ue(self):
if hasattr(self, "_ue"):
return self._ue
self._ue = get_object_or_404(UE, id=self.kwargs.get("ue_id"))
return self._ue
return get_object_or_404(UE, id=self.kwargs.get("ue_id"))
def has_permission(self):
if self.ue.has_user_already_commented(self.request.user):
@@ -112,24 +110,6 @@ class UEDetailView(
}
class UECommentDetailView(PermissionRequiredMixin, DetailView):
model = UEComment
pk_url_kwarg = "comment_id"
template_name = "pedagogy/fragments/ue_comment.jinja"
permission_required = "pedagogy.view_ue"
context_object_name = "comment"
def get_queryset(self):
return (
super().get_queryset().viewable_by(self.request.user).annotate_is_reported()
)
def get_context_data(self, **kwargs):
return super().get_context_data(**kwargs) | {
"ue": getattr(self.object, "ue", None)
}
class UECommentUpdateView(PermissionOrAuthorRequiredMixin, AllowFragment, UpdateView):
"""Allow edit of a given comment."""
@@ -155,7 +135,7 @@ class UECommentUpdateView(PermissionOrAuthorRequiredMixin, AllowFragment, Update
}
def get_success_url(self):
return reverse("pedagogy:comment_detail", kwargs={"comment_id": self.object.id})
return reverse("pedagogy:ue_detail", kwargs={"ue_id": self.object.ue.id})
class UECommentDeleteView(PermissionOrAuthorRequiredMixin, AllowFragment, DeleteView):
@@ -173,7 +153,7 @@ class UECommentDeleteView(PermissionOrAuthorRequiredMixin, AllowFragment, Delete
return response
def get_success_url(self):
return reverse("pedagogy:comment_detail", kwargs={"comment_id": self.object.id})
return reverse("pedagogy:ue_detail", kwargs={"ue_id": self.object.ue.id})
class UEGuideView(PermissionRequiredMixin, TemplateView):
@@ -195,6 +175,10 @@ class UECommentReportCreateView(PermissionRequiredMixin, AllowFragment, CreateVi
self.ue_comment = get_object_or_404(UEComment, pk=kwargs["comment_id"])
return super().dispatch(request, *args, **kwargs)
@cached_property
def ue_detail_url(self):
return reverse("pedagogy:ue_detail", kwargs={"ue_id": self.ue_comment.ue.id})
def get_form_kwargs(self):
kwargs = super().get_form_kwargs()
kwargs["reporter_id"] = self.request.user.id
@@ -204,6 +188,7 @@ class UECommentReportCreateView(PermissionRequiredMixin, AllowFragment, CreateVi
def get_context_data(self, **kwargs):
return super().get_context_data() | {
"comment_id": self.ue_comment.id,
"ue_detail_url": self.ue_detail_url,
}
def form_valid(self, form):
@@ -224,9 +209,7 @@ class UECommentReportCreateView(PermissionRequiredMixin, AllowFragment, CreateVi
return resp
def get_success_url(self):
return reverse(
"pedagogy:comment_detail", kwargs={"comment_id": self.ue_comment.id}
)
return self.ue_detail_url
class UEModerationFormView(PermissionRequiredMixin, FormView):