Added favourite handler

This commit is contained in:
=
2012-08-20 22:00:13 +01:00
parent 5a2ce09d73
commit 35e2106cf2
22 changed files with 118 additions and 47 deletions

View File

@@ -6,14 +6,12 @@ from django.shortcuts import render_to_response
import json
from django.utils import simplejson
from django.views.decorators.csrf import csrf_exempt
import os
from core.utils import live
from dss import localsettings
from spa.models import UserProfile
from spa.models import UserProfile, MixFavourite
from spa.models.Mix import Mix
from spa.models.Comment import Comment
from spa.models.MixLike import MixLike
from PIL import Image
import logging
logger = logging.getLogger(__name__)
@@ -36,7 +34,8 @@ class AjaxHandler(object):
url(r'^mix_stream_url/(?P<mix_id>\d+)/$', 'spa.ajax.get_mix_stream_url'),
url(r'^release_player/(?P<release_id>\d+)/$', 'spa.ajax.release_player'),
url(r'^live_now_playing/$', 'spa.ajax.live_now_playing'),
url(r'^like/$', 'spa.ajax.like', name='ajax_mix-description'),
url(r'^like/$', 'spa.ajax.like', name='ajax_mix_like'),
url(r'^favourite/$', 'spa.ajax.favourite', name='ajax_mix_favourite'),
url(r'^facebook_post_likes_allowed/$', 'spa.ajax.facebook_post_likes_allowed', name='ajax_facebook_post_likes_allowed'),
url(r'^upload_avatar_image/$', 'spa.ajax.upload_avatar_image', name='ajax_upload_avatar_image'),
]
@@ -53,11 +52,11 @@ def _get_json(payload, key='value'):
data = {
key: payload
}
return data
return simplejson.dumps(data)
def get_mix_description(request, mix_id):
return HttpResponse(json.dumps(_get_json('ArgleBargle')), mimetype="application/json")
return HttpResponse(_get_json('ArgleBargle'), mimetype="application/json")
@render_to('inc/header.html')
@@ -104,9 +103,9 @@ def mix_add_comment(request):
comment.time_index = request.POST['position']
comment.save()
return HttpResponse(simplejson.dumps({'description': 'Hello Sailor'}))
return HttpResponse(_get_json('Comment posted', 'description'))
else:
return HttpResponse(simplejson.dumps({'description': 'Error posting'}))
return HttpResponse(_get_json('Error posting', 'description'))
@render_to('inc/comment_list.html')
def mix_comments(request, mix_id):
@@ -121,9 +120,30 @@ def like(request):
if request.POST['dataMode'] == 'mix':
mix = Mix.objects.get(pk = request.POST['dataId'])
if mix is not None:
mix.likes.add(MixLike(mix = mix, user = request.user))
if mix.likes.count() == 0:
mix.likes.add(MixLike(mix = mix, user = request.user))
response = _get_json('Liked')
else:
mix.likes.all().delete()
response = _get_json('Unliked')
mix.save()
return HttpResponse(simplejson.dumps(request.raw_post_data))
return HttpResponse(response)
@login_required()
def favourite(request):
if request.is_ajax():
if request.method == 'POST':
if request.POST['dataMode'] == 'mix':
mix = Mix.objects.get(pk = request.POST['dataId'])
if mix is not None:
if mix.favourites.count() == 0:
mix.favourites.add(MixFavourite(mix = mix, user = request.user))
response = _get_json('Favourited')
else:
mix.favourites.all().delete()
response = _get_json('Unfavourited')
mix.save()
return HttpResponse(response)
@login_required()
def facebook_post_likes_allowed(request):
@@ -132,9 +152,9 @@ def facebook_post_likes_allowed(request):
likes_allowed = profile.activity_sharing & UserProfile.ACTIVITY_SHARE_LIKES
facebook_allowed = profile.activity_sharing_networks & UserProfile.ACTIVITY_SHARE_NETWORK_FACEBOOK
return HttpResponse(json.dumps(_get_json(bool(likes_allowed & facebook_allowed))), mimetype="application/json")
return HttpResponse(_get_json(bool(likes_allowed & facebook_allowed)), mimetype="application/json")
return HttpResponse(json.dumps(_get_json(False)), mimetype="application/json")
return HttpResponse(_get_json(False), mimetype="application/json")
@csrf_exempt
def upload_avatar_image(request):
@@ -144,7 +164,7 @@ def upload_avatar_image(request):
if profile:
profile.avatar_image = request.FILES['Filedata']
profile.save()
return HttpResponse(json.dumps(_get_json("Success")))
return HttpResponse(_get_json("Success"))
except Exception, ex:
logger.exception("Error uploading avatar")
return HttpResponse(json.dumps(_get_json("Failed")))
return HttpResponse(_get_json("Failed"))