views/episode_detail: defaults to program page when unauthorized user calls unpublished episode

This commit is contained in:
Chris Tactic 2024-11-12 11:31:36 +01:00
parent 56f9ecff1f
commit 4e26e058fb

View File

@ -40,6 +40,13 @@ class EpisodeDetailView(PageDetailView):
def get_related_url(self): def get_related_url(self):
return reverse("episode-list", kwargs={"parent_slug": self.object.parent.slug}) return reverse("episode-list", kwargs={"parent_slug": self.object.parent.slug})
def get_queryset(self):
episode = get_object_or_404(Episode, slug=self.kwargs["slug"])
qs = super().get_queryset()
if not qs:
return HttpResponseRedirect(reverse("program-detail", kwargs={"slug": episode.program.slug}))
return qs
@attach @attach
class EpisodeListView(PageListView): class EpisodeListView(PageListView):