forked from rc/aircox
aircox/views/episode_detail: when episode page is unpublished and user not authorized, redirect to parent page
This commit is contained in:
parent
4e26e058fb
commit
2cba2c4681
|
@ -1,5 +1,5 @@
|
||||||
from django.contrib.auth.mixins import UserPassesTestMixin
|
from django.contrib.auth.mixins import UserPassesTestMixin
|
||||||
from django.http import HttpResponseRedirect
|
from django.http import Http404, HttpResponseRedirect
|
||||||
from django.shortcuts import get_object_or_404
|
from django.shortcuts import get_object_or_404
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
@ -47,6 +47,17 @@ class EpisodeDetailView(PageDetailView):
|
||||||
return HttpResponseRedirect(reverse("program-detail", kwargs={"slug": episode.program.slug}))
|
return HttpResponseRedirect(reverse("program-detail", kwargs={"slug": episode.program.slug}))
|
||||||
return qs
|
return qs
|
||||||
|
|
||||||
|
def get(self, *args, **kwargs):
|
||||||
|
"""When episode is unpublished and user not authorized, redirect to
|
||||||
|
parent page."""
|
||||||
|
try:
|
||||||
|
self.object = super().get_object(*args, **kwargs)
|
||||||
|
except Http404:
|
||||||
|
episode = get_object_or_404(Episode, slug=self.kwargs["slug"])
|
||||||
|
return HttpResponseRedirect(reverse("program-detail", kwargs={"slug": episode.program.slug}))
|
||||||
|
context = self.get_context_data(object=self.object)
|
||||||
|
return self.render_to_response(context)
|
||||||
|
|
||||||
|
|
||||||
@attach
|
@attach
|
||||||
class EpisodeListView(PageListView):
|
class EpisodeListView(PageListView):
|
||||||
|
|
Loading…
Reference in New Issue
Block a user