From 3f884981d615f4ea6191ccd5970c8a72954f60f1 Mon Sep 17 00:00:00 2001 From: Fergal Moran Date: Fri, 25 Oct 2013 00:26:09 +0100 Subject: [PATCH] Closes #7 --- spa/api/v1/MixResource.py | 12 ++++++++++++ templates/views/_MixItemInsert.html | 13 ++++++++----- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/spa/api/v1/MixResource.py b/spa/api/v1/MixResource.py index b8e6db9..4291761 100755 --- a/spa/api/v1/MixResource.py +++ b/spa/api/v1/MixResource.py @@ -67,6 +67,8 @@ class MixResource(BackboneCompatibleResource): name="api_get_search"), url(r"^(?P%s)/(?P[\d]+)/$" % self._meta.resource_name, self.wrap_view('dispatch_detail'), name="api_dispatch_detail"), + url(r"^(?P%s)/random/$" % self._meta.resource_name, self.wrap_view('dispatch_random'), + name="api_dispatch_random"), url(r"^(?P%s)/(?P[\w\d-]+)/$" % self._meta.resource_name, self.wrap_view('dispatch_detail'), name="api_dispatch_detail"), url(r"^(?P%s)/(?P\w[\w/-]*)/comments%s$" % ( @@ -75,6 +77,10 @@ class MixResource(BackboneCompatibleResource): self._meta.resource_name, trailing_slash()), self.wrap_view('get_activity'), name="api_get_activity"), ] + def dispatch_random(self, request, **kwargs): + kwargs['pk'] = self._meta.queryset.values_list('pk', flat=True).order_by('?')[0] + return self.get_detail(request, **kwargs) + def get_comments(self, request, **kwargs): try: basic_bundle = self.build_bundle(request=request) @@ -176,6 +182,12 @@ class MixResource(BackboneCompatibleResource): bundle.data['genre-list'] = json.to_ajax(bundle.obj.genres.all(), 'description', 'slug') bundle.data['liked'] = bundle.obj.is_liked(bundle.request.user) + + if bundle.request.user.is_authenticated(): + bundle.data['can_edit'] = bundle.request.user.is_staff or bundle.obj.user_id == bundle.request.user.id + else: + bundle.data['can_edit'] = False + if bundle.request.user.is_authenticated(): bundle.data['favourited'] = bundle.obj.favourites.filter(user=bundle.request.user).count() != 0 else: diff --git a/templates/views/_MixItemInsert.html b/templates/views/_MixItemInsert.html index 4130a38..f56a2b0 100755 --- a/templates/views/_MixItemInsert.html +++ b/templates/views/_MixItemInsert.html @@ -112,13 +112,16 @@ - {% if user.is_staff %} -