Merge pull request #793 from gpodder/remove-advertise
[mygpo.git] / mygpo / suggestions / views.py
blob8a5cbc51aa786af76418f06a9fa885054378e381
1 from django.urls import reverse
2 from django.http import HttpResponseRedirect
3 from django.contrib.auth.decorators import login_required
4 from django.shortcuts import render
5 from django.contrib.sites.requests import RequestSite
6 from django.views.decorators.vary import vary_on_cookie
7 from django.views.decorators.cache import never_cache, cache_control
9 from mygpo.podcasts.views.podcast import slug_decorator, id_decorator
10 from mygpo.suggestions.models import PodcastSuggestion
11 from mygpo.podcasts.models import Podcast
13 import logging
15 logger = logging.getLogger(__name__)
18 @never_cache
19 @login_required
20 def blacklist(request, blacklisted_podcast):
21 user = request.user
23 logger.info(
24 'Removing suggestion of "{podcast}" for "{user}"'.format(
25 podcast=blacklisted_podcast, user=user
29 suggestion = PodcastSuggestion.objects.filter(
30 suggested_to=user, podcast=blacklisted_podcast
31 ).update(deleted=True)
32 return HttpResponseRedirect(reverse("suggestions"))
35 @vary_on_cookie
36 @cache_control(private=True)
37 @login_required
38 def suggestions(request):
39 user = request.user
40 suggestions = Podcast.objects.filter(
41 podcastsuggestion__suggested_to=user, podcastsuggestion__deleted=False
43 current_site = RequestSite(request)
44 return render(
45 request, "suggestions.html", {"entries": suggestions, "url": current_site}
49 blacklist_slug = slug_decorator(blacklist)
50 blacklist_id = id_decorator(blacklist)