forked from rc/aircox
misc: enable adding new episodes
This commit is contained in:
parent
2a594821bb
commit
fe424e9d9d
|
@ -8,6 +8,8 @@
|
|||
|
||||
{% block page-form-actions %}
|
||||
<a class="button secondary" href="{% url 'episode-list' parent_slug=object.slug %}">{% trans "Episodes" %}</a>
|
||||
|
||||
<a class="button secondary" href="{% url 'program-add-episode' object.pk %}">{% trans "New episode" %}</a>
|
||||
{% if object and object.pk and request.user.is_superuser %}
|
||||
|
||||
<button type="button"
|
||||
|
|
|
@ -127,6 +127,9 @@ urls = [
|
|||
# ---- dashboard
|
||||
path(_("dashboard/"), views.dashboard.DashboardView.as_view(), name="dashboard"),
|
||||
path(_("dashboard/program/<pk>/"), views.program.ProgramUpdateView.as_view(), name="program-edit"),
|
||||
path(
|
||||
_("dashboard/program/<pk>/add-episode/"), views.episode.EpisodeCreateView.as_view(), name="program-add-episode"
|
||||
),
|
||||
path(_("dashboard/episodes/<pk>/"), views.episode.EpisodeUpdateView.as_view(), name="episode-edit"),
|
||||
path(_("dashboard/statistics/"), views.dashboard.StatisticsView.as_view(), name="dashboard-statistics"),
|
||||
path(_("dashboard/statistics/<date:date>/"), views.dashboard.StatisticsView.as_view(), name="dashboard-statistics"),
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
from django.contrib.auth.mixins import UserPassesTestMixin
|
||||
from django.shortcuts import get_object_or_404
|
||||
from django.urls import reverse
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from aircox.models import Episode, Program, StaticPage, Track
|
||||
from aircox import forms, filters, permissions
|
||||
|
@ -12,6 +14,7 @@ __all__ = (
|
|||
"EpisodeDetailView",
|
||||
"EpisodeListView",
|
||||
"PodcastListView",
|
||||
"EpisodeCreateView",
|
||||
"EpisodeUpdateView",
|
||||
)
|
||||
|
||||
|
@ -139,3 +142,9 @@ class EpisodeUpdateView(UserPassesTestMixin, VueFormDataMixin, PageUpdateView):
|
|||
if invalid:
|
||||
return self.get(request, **formsets)
|
||||
return resp
|
||||
|
||||
|
||||
class EpisodeCreateView(EpisodeUpdateView):
|
||||
def get_object(self):
|
||||
program = get_object_or_404(Program, pk=self.kwargs["pk"])
|
||||
return Episode.objects.create(program=program, title="%s (%s)" % (program.title, _("draft")))
|
||||
|
|
Loading…
Reference in New Issue
Block a user