aircox/views/episode: when creating an episode redirect to edit view

This commit is contained in:
Chris Tactic 2024-11-07 10:12:11 +01:00
parent c102cf936e
commit 6ca8e7e4cc

View File

@ -1,7 +1,8 @@
from django.contrib.auth.mixins import UserPassesTestMixin from django.contrib.auth.mixins import UserPassesTestMixin
from django.shortcuts import get_object_or_404 from django.shortcuts import get_object_or_404, redirect
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 _
from django.views.generic.base import View
from aircox.models import Episode, Program, StaticPage, Track from aircox.models import Episode, Program, StaticPage, Track
from aircox import forms, filters, permissions from aircox import forms, filters, permissions
@ -144,7 +145,14 @@ class EpisodeUpdateView(UserPassesTestMixin, VueFormDataMixin, PageUpdateView):
return resp return resp
class EpisodeCreateView(EpisodeUpdateView): class EpisodeCreateView(UserPassesTestMixin, View):
def get(self, request, **kwargs):
program = self.get_object()
episode = Episode.objects.create(program=program, title="%s (%s)" % (program.title, _("draft")))
return redirect(reverse("episode-edit", kwargs={"pk": episode.pk}))
def test_func(self):
return permissions.program.can(self.request.user, "update", self.get_object())
def get_object(self): def get_object(self):
program = get_object_or_404(Program, pk=self.kwargs["pk"]) return get_object_or_404(Program, pk=self.kwargs["pk"])
return Episode.objects.create(program=program, title="%s (%s)" % (program.title, _("draft")))