From 4e26e058fb4e99c0a35b7e12907d8a0c148eb869 Mon Sep 17 00:00:00 2001 From: Christophe Siraut Date: Tue, 12 Nov 2024 11:31:36 +0100 Subject: [PATCH] views/episode_detail: defaults to program page when unauthorized user calls unpublished episode --- aircox/views/episode.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/aircox/views/episode.py b/aircox/views/episode.py index c3eb910..27abd34 100644 --- a/aircox/views/episode.py +++ b/aircox/views/episode.py @@ -40,6 +40,13 @@ class EpisodeDetailView(PageDetailView): def get_related_url(self): 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 class EpisodeListView(PageListView):