Pre favourites/likes change

This commit is contained in:
Fergal Moran
2013-05-27 18:54:59 +01:00
parent 416920a1e9
commit 462a8176b4
20 changed files with 633 additions and 67 deletions

View File

@@ -6,6 +6,7 @@ from tastypie.authorization import DjangoAuthorization
from django.conf.urls import url
from spa.api.v1.BackboneCompatibleResource import BackboneCompatibleResource
from spa.api.v1.MixResource import MixResource
from spa.models import UserProfile, Mix
@@ -77,6 +78,8 @@ class UserProfileResource(BackboneCompatibleResource):
UserProfile.ACTIVITY_SHARE_NETWORK_TWITTER)
bundle.data['mix_count'] = Mix.objects.filter(user=bundle.obj).count()
bundle.data['like_count'] = bundle.obj.likes.count()
bundle.data['favourite_count'] = bundle.obj.favourites.count()
bundle.data['follower_count'] = bundle.obj.followers.count()
bundle.data['following_count'] = bundle.obj.following.count()
bundle.data['following'] = bundle.obj.is_follower(bundle.request.user)
@@ -95,12 +98,23 @@ class UserResource(BackboneCompatibleResource):
def prepend_urls(self):
return [
url(r"^(?P<resource_name>%s)/(?P<pk>\d+)/$" % self._meta.resource_name, self.wrap_view('dispatch_detail'),
name="api_dispatch_detail"),
url(r"^(?P<resource_name>%s)/(?P<userprofile__slug>[\w\d_.-]+)/favourites/$" % self._meta.resource_name,
self.wrap_view('get_user_favourites'), name="api_get_user_favourites"),
url(r"^(?P<resource_name>%s)/(?P<pk>\d+)/$" % self._meta.resource_name,
self.wrap_view('dispatch_detail'), name="api_dispatch_detail"),
url(r"^(?P<resource_name>%s)/(?P<userprofile__slug>[\w\d_.-]+)/$" % self._meta.resource_name,
self.wrap_view('dispatch_detail'), name="api_dispatch_detail"),
]
def get_user_favourites(self, request, **kwargs):
try:
basic_bundle = self.build_bundle(request=request)
user = self.cached_obj_get(bundle=basic_bundle, **self.remove_api_resource_names(kwargs))
mixes = MixResource()
return mixes.get_object_list(request).filter()
except Exception, ex:
self.logger.error("Error getting user favourites: %s" % ex.message)
def dehydrate(self, bundle):
if bundle.obj.id != bundle.request.user.id:
del bundle.data['email']