From daa3247b73651865468be80451c5e45a703b980d Mon Sep 17 00:00:00 2001 From: Trent Palmer Date: Sat, 13 Mar 2021 08:50:04 -0800 Subject: [PATCH] add delete to edit_episode --- audio/episode_views.py | 19 ++++++++++++++++++ .../audio/delete_episode_confirmation.html | 20 +++++++++++++++++++ audio/urls.py | 3 ++- tp/templates/base_form.html | 2 ++ 4 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 audio/templates/audio/delete_episode_confirmation.html diff --git a/audio/episode_views.py b/audio/episode_views.py index 6b452df..2e23376 100644 --- a/audio/episode_views.py +++ b/audio/episode_views.py @@ -1,4 +1,5 @@ from django.shortcuts import render, redirect +from django.contrib import messages from .forms import EpisodeForm from .models import Feed, Episode, rand_slug from django.utils.text import slugify @@ -31,9 +32,27 @@ def edit_episode(request, pk, title_slug): 'title': 'Edit Episode?', 'submit': 'save', 'form_data': 'TRUE', + 'edit_episode': True, + 'episode_pk': pk, }) +def confirm_delete_episode(request, pk): + if not request.user.is_authenticated: + return redirect('audio:home') + episode = Episode.objects.get(id=pk) + if not episode.user == request.user: + return redirect('audio:home') + if request.method == 'POST': + episode.delete() + messages.success(request, f'Episode {episode.title} deleted!', extra_tags='mb-0') + return redirect('audio:feed', pk=episode.feed.pk, slug=episode.feed.slug) + return render(request, 'audio/delete_episode_confirmation.html', { + 'title': 'Delete Episode?', + 'heading': 'Delete Episode?', + 'episode': episode}) + + def new_episode(request, feed_pk, feed_title_slug): if not request.user.is_authenticated: return redirect('audio:home') diff --git a/audio/templates/audio/delete_episode_confirmation.html b/audio/templates/audio/delete_episode_confirmation.html new file mode 100644 index 0000000..87fc606 --- /dev/null +++ b/audio/templates/audio/delete_episode_confirmation.html @@ -0,0 +1,20 @@ +{% extends "base.html" %} + +{% load crispy_forms_tags %} + +{% block content %} + + {% include "base_navbar.html" %} +
+ {% include "base_heading.html" %} +
+

Delete {{ episode.title }}?

+
+
+ {% csrf_token %} +
+ Cancel +
+
+
+{% endblock %} diff --git a/audio/urls.py b/audio/urls.py index 6c65d3f..e451b64 100644 --- a/audio/urls.py +++ b/audio/urls.py @@ -1,6 +1,6 @@ from django.urls import path from . import views -from .episode_views import new_episode, edit_episode +from .episode_views import new_episode, edit_episode, confirm_delete_episode from .feed_views import new_feed, edit_feed, confirm_delete_feed from .audiorssfeed import AudioRssFeed @@ -13,6 +13,7 @@ urlpatterns = [ path('edit-feed//', edit_feed, name='edit_feed'), path('confirm-delete-feed/', confirm_delete_feed, name='confirm_delete_feed'), + path('confirm-delete-episode/', confirm_delete_episode, name='confirm_delete_episode'), path('new-episode//', new_episode, name='new_episode'), path('edit-episode//', edit_episode, name='edit_episode'), diff --git a/tp/templates/base_form.html b/tp/templates/base_form.html index f0370fa..42e6d01 100644 --- a/tp/templates/base_form.html +++ b/tp/templates/base_form.html @@ -40,6 +40,8 @@ {% if edit_feed %} Delete Feed? + {% elif edit_episode %} + Delete Episode? {% endif %}