diff --git a/audio/feed_views.py b/audio/feed_views.py
new file mode 100644
index 0000000..4f18386
--- /dev/null
+++ b/audio/feed_views.py
@@ -0,0 +1,68 @@
+from django.shortcuts import render, redirect
+from .forms import FeedForm
+from .models import Feed, rand_slug
+from django.contrib import messages
+from django.utils.text import slugify
+
+
+def new_feed(request):
+ if not request.user.is_authenticated:
+ return redirect('audio:home')
+ if request.method == "POST":
+ form = FeedForm(request.POST, request.FILES)
+ if form.is_valid():
+ feed = form.save(commit=False)
+ feed.user = request.user
+ feed.save()
+ return redirect('audio:home')
+ else:
+ form = FeedForm()
+ return render(request, 'base_form.html', {'form': form})
+
+
+def confirm_delete_feed(request, pk):
+ if not request.user.is_authenticated:
+ return redirect('audio:home')
+ feed = Feed.objects.get(id=pk)
+ if not feed.user == request.user:
+ return redirect('audio:home')
+ if request.method == 'POST':
+ feed.delete()
+ messages.success(request, f'Feed {feed.title} deleted!', extra_tags='mb-0')
+ return redirect('audio:feeds')
+ return render(request, 'audio/delete_feed_confirmation.html', {
+ 'title': 'Delete Feed?',
+ 'heading': 'Delete Feed?',
+ 'feed': feed})
+
+
+def edit_feed(request, pk, title_slug):
+ if not request.user.is_authenticated:
+ return redirect('audio:home')
+ slug = title_slug
+ feed = Feed.objects.get(id=pk)
+ otitle = feed.title
+ if not feed.user == request.user:
+ return redirect('audio:home')
+ if request.method == "POST":
+ form = FeedForm(request.POST, request.FILES, instance=feed)
+ if form.is_valid():
+ nfeed = form.save(commit=False)
+ if nfeed.title != otitle:
+ nfeed.slug = slugify(rand_slug() + "-" + nfeed.title)
+ slug = nfeed.slug
+ nfeed.save()
+ return redirect('audio:feed', pk=pk, slug=slug)
+ else:
+ form = FeedForm(instance=feed)
+ return render(
+ request, 'base_form.html',
+ {
+ 'form': form,
+ 'heading': 'Edit Feed?',
+ 'title': 'Edit Feed?',
+ 'submit': 'save',
+ 'form_data': 'TRUE',
+ 'edit_feed': True,
+ 'feed_pk': pk,
+ })
diff --git a/audio/templates/audio/delete_feed_confirmation.html b/audio/templates/audio/delete_feed_confirmation.html
new file mode 100644
index 0000000..19518fb
--- /dev/null
+++ b/audio/templates/audio/delete_feed_confirmation.html
@@ -0,0 +1,20 @@
+{% extends "base.html" %}
+
+{% load crispy_forms_tags %}
+
+{% block content %}
+
+ {% include "base_navbar.html" %}
+
+ {% include "base_heading.html" %}
+
+
Delete {{ feed.title }}?
+
+
+{% endblock %}
diff --git a/audio/urls.py b/audio/urls.py
index 374b3bf..6c65d3f 100644
--- a/audio/urls.py
+++ b/audio/urls.py
@@ -1,15 +1,19 @@
from django.urls import path
from . import views
from .episode_views import new_episode, edit_episode
+from .feed_views import new_feed, edit_feed, confirm_delete_feed
from .audiorssfeed import AudioRssFeed
app_name = "audio"
urlpatterns = [
path('', views.home, name='home'),
- path('new-feed/', views.new_feed, name='new_feed'),
+ path('new-feed/', new_feed, name='new_feed'),
path('feeds/', views.feeds, name='feeds'),
- path('edit-feed//', views.edit_feed, name='edit_feed'),
+ path('edit-feed//', edit_feed, name='edit_feed'),
+
+ path('confirm-delete-feed/', confirm_delete_feed, name='confirm_delete_feed'),
+
path('new-episode//', new_episode, name='new_episode'),
path('edit-episode//', edit_episode, name='edit_episode'),
path('rss/.xml', AudioRssFeed(), name='rss'),
diff --git a/audio/views.py b/audio/views.py
index 412a001..f609d8c 100644
--- a/audio/views.py
+++ b/audio/views.py
@@ -1,8 +1,6 @@
-from django.shortcuts import render, redirect, reverse
+from django.shortcuts import render, reverse
from django.contrib.sites.shortcuts import get_current_site
-from .forms import FeedForm
-from django.utils.text import slugify
-from .models import Feed, Episode, rand_slug
+from .models import Feed, Episode
from tp.settings import IMAGES_URL, MP3_URL
@@ -47,48 +45,3 @@ def feeds(request):
request,
'audio/feeds.html',
{'feeds': feeds, 'IMAGES_URL': IMAGES_URL})
-
-
-def new_feed(request):
- if not request.user.is_authenticated:
- return redirect('audio:home')
- if request.method == "POST":
- form = FeedForm(request.POST, request.FILES)
- if form.is_valid():
- feed = form.save(commit=False)
- feed.user = request.user
- feed.save()
- return redirect('audio:home')
- else:
- form = FeedForm()
- return render(request, 'base_form.html', {'form': form})
-
-
-def edit_feed(request, pk, title_slug):
- if not request.user.is_authenticated:
- return redirect('audio:home')
- slug = title_slug
- feed = Feed.objects.get(id=pk)
- otitle = feed.title
- if not feed.user == request.user:
- return redirect('audio:home')
- if request.method == "POST":
- form = FeedForm(request.POST, request.FILES, instance=feed)
- if form.is_valid():
- nfeed = form.save(commit=False)
- if nfeed.title != otitle:
- nfeed.slug = slugify(rand_slug() + "-" + nfeed.title)
- slug = nfeed.slug
- nfeed.save()
- return redirect('audio:feed', pk=pk, slug=slug)
- else:
- form = FeedForm(instance=feed)
- return render(
- request, 'base_form.html',
- {
- 'form': form,
- 'heading': 'Edit Feed?',
- 'title': 'Edit Feed?',
- 'submit': 'save',
- 'form_data': 'TRUE',
- })
diff --git a/tp/templates/base_form.html b/tp/templates/base_form.html
index d330292..f0370fa 100644
--- a/tp/templates/base_form.html
+++ b/tp/templates/base_form.html
@@ -36,8 +36,11 @@
{% endif %}
{% csrf_token %}
{{ form | crispy }}
-
+
{% if request.path == edit_profile_url %}