templates: set document type to html, prevent quicks mode
This commit is contained in:
@ -1,14 +1,20 @@
|
||||
from django.shortcuts import reverse
|
||||
from django.contrib.auth.mixins import UserPassesTestMixin
|
||||
from django.urls import reverse
|
||||
|
||||
|
||||
from aircox.forms import EpisodeForm
|
||||
from ..filters import EpisodeFilters
|
||||
from ..models import Episode, Program, StaticPage
|
||||
from .page import PageListView
|
||||
from .program import ProgramPageDetailView
|
||||
from .program import ProgramPageDetailView, BaseProgramMixin
|
||||
from .page import PageUpdateView
|
||||
|
||||
|
||||
__all__ = (
|
||||
"EpisodeDetailView",
|
||||
"EpisodeListView",
|
||||
"PodcastListView",
|
||||
"EpisodeUpdateView",
|
||||
)
|
||||
|
||||
|
||||
@ -39,3 +45,18 @@ class EpisodeListView(PageListView):
|
||||
class PodcastListView(EpisodeListView):
|
||||
attach_to_value = StaticPage.Target.PODCASTS
|
||||
queryset = Episode.objects.published().with_podcasts().order_by("-pub_date")
|
||||
|
||||
|
||||
class EpisodeUpdateView(UserPassesTestMixin, BaseProgramMixin, PageUpdateView):
|
||||
model = Episode
|
||||
form_class = EpisodeForm
|
||||
|
||||
def get_sidebar_queryset(self):
|
||||
return super().get_sidebar_queryset().filter(parent=self.program)
|
||||
|
||||
def test_func(self):
|
||||
program = self.get_object().program
|
||||
return self.request.user.has_perm("aircox.%s" % program.change_permission_codename)
|
||||
|
||||
def get_success_url(self):
|
||||
return reverse("episode-detail", kwargs={"slug": self.get_object().slug})
|
||||
|
Reference in New Issue
Block a user