[Suggestions] move existing code into own app
[mygpo.git] / mygpo / suggestions / views.py
blobd9117418e7b164df74a985e56ee9d04be7e78549
1 from django.core.urlresolvers import reverse
2 from django.http import HttpResponseRedirect
3 from django.contrib import messages
4 from django.utils.translation import ugettext as _
5 from django.contrib.auth.decorators import login_required
6 from django.shortcuts import render
7 from django.contrib.sites.models import RequestSite
8 from django.views.decorators.vary import vary_on_cookie
9 from django.views.decorators.cache import never_cache, cache_control
11 from mygpo.suggestions.tasks import update_suggestions
12 from mygpo.db.couchdb.user import (suggestions_for_user,
13 blacklist_suggested_podcast)
16 @never_cache
17 @login_required
18 def blacklist(request, blacklisted_podcast):
19 user = request.user
20 suggestion = suggestions_for_user(user)
21 blacklist_suggested_podcast(suggestion, blacklisted_podcast.get_id())
22 update_suggestions.delay(user)
23 return HttpResponseRedirect(reverse('suggestions'))
26 @never_cache
27 @login_required
28 def rate_suggestions(request):
29 rating_val = int(request.GET.get('rate', None))
31 suggestion = suggestions_for_user(request.user)
32 suggestion.rate(rating_val, request.user.profile.uuid.hex)
33 suggestion.save()
35 messages.success(request, _('Thanks for rating!'))
37 return HttpResponseRedirect(reverse('suggestions'))
39 @vary_on_cookie
40 @cache_control(private=True)
41 @login_required
42 def suggestions(request):
43 suggestion_obj = suggestions_for_user(request.user)
44 suggestions = suggestion_obj.get_podcasts()
45 current_site = RequestSite(request)
46 return render(request, 'suggestions.html', {
47 'entries': suggestions,
48 'url': current_site