Move podcast and episode views to mygpo.podcasts
[mygpo.git] / mygpo / suggestions / views.py
blob1d7c3e234e2b11f0a45e071270ccefef5af04c01
1 from django.core.urlresolvers 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
14 logger = logging.getLogger(__name__)
17 @never_cache
18 @login_required
19 def blacklist(request, blacklisted_podcast):
20 user = request.user
22 logger.info('Removing suggestion of "{podcast}" for "{user}"'.format(
23 podcast=blacklisted_podcast, user=user))
25 suggestion = PodcastSuggestion.objects.filter(suggested_to=user,
26 podcast=blacklisted_podcast)\
27 .update(deleted=True)
28 return HttpResponseRedirect(reverse('suggestions'))
31 @vary_on_cookie
32 @cache_control(private=True)
33 @login_required
34 def suggestions(request):
35 user = request.user
36 suggestions = Podcast.objects.filter(podcastsuggestion__suggested_to=user,
37 podcastsuggestion__deleted=False)
38 current_site = RequestSite(request)
39 return render(request, 'suggestions.html', {
40 'entries': suggestions,
41 'url': current_site
45 blacklist_slug = slug_decorator(blacklist)
46 blacklist_id = id_decorator(blacklist)