From bbbe97b01768c4483448fb9764aa14deae5d1f5e Mon Sep 17 00:00:00 2001 From: Fergal Moran Date: Fri, 12 Oct 2012 21:51:01 +0100 Subject: [PATCH] Added url handler for user --- spa/api/v1/MixResource.py | 9 ++++++--- spa/models/Mix.py | 5 +++++ spa/models/UserProfile.py | 1 + templates/views/UserView.html | 8 ++++++++ 4 files changed, 20 insertions(+), 3 deletions(-) diff --git a/spa/api/v1/MixResource.py b/spa/api/v1/MixResource.py index 33e0b07..e0a54b1 100644 --- a/spa/api/v1/MixResource.py +++ b/spa/api/v1/MixResource.py @@ -24,11 +24,14 @@ class MixResource(BackboneCompatibleResource): return super(MixResource, self).obj_create(bundle, request, user=request.user.get_profile(), local_file=file_name, uid=uid) def obj_get_list(self, request=None, **kwargs): - sort = 'latest' - if 'sort' in request.GET and request.GET['sort']: + if 'user' in request.GET and request.GET['user']: + user = request.GET['user'] + return Mix.get_for_username(user) + elif 'sort' in request.GET and request.GET['sort']: sort = request.GET['sort'] + return Mix.get_listing(sort, request.user) - return Mix.get_listing(sort, request.user) + return Mix.get_listing('latest', request.user) def dehydrate_mix_image(self, bundle): return bundle.obj.get_image_url() diff --git a/spa/models/Mix.py b/spa/models/Mix.py index 865a8e7..2c63fb8 100644 --- a/spa/models/Mix.py +++ b/spa/models/Mix.py @@ -84,6 +84,11 @@ class Mix(_BaseModel): return rfc822.formatdate(rfc822.mktime_tz(rfc822.parsedate_tz(self.upload_date.strftime("%a, %d %b %Y %H:%M:%S")))) + @classmethod + def get_for_username(cls, user): + queryset = Mix.objects.filter(user__profile_slug__exact=user) + return queryset + @classmethod def get_listing(cls, listing_type, user=None): queryset = None diff --git a/spa/models/UserProfile.py b/spa/models/UserProfile.py index 80e526d..fa3702d 100644 --- a/spa/models/UserProfile.py +++ b/spa/models/UserProfile.py @@ -28,6 +28,7 @@ class UserProfile(_BaseModel): avatar_type = models.CharField(max_length=15, default='social') avatar_image = models.ImageField(blank=True, upload_to=avatar_name) display_name = models.CharField(blank=True, max_length=35) + profile_slug = models.CharField(blank=True, max_length=35) activity_sharing = models.IntegerField(default=0) activity_sharing_networks = models.IntegerField(default=0) def save(self, size=(260, 180)): diff --git a/templates/views/UserView.html b/templates/views/UserView.html index 6a1c99f..18f6942 100644 --- a/templates/views/UserView.html +++ b/templates/views/UserView.html @@ -14,6 +14,14 @@ value="<%= item.display_name %>"> +
+ + +
+ +
+