From a8292b621c1df24515ab224321c8f3b4678cdf0f Mon Sep 17 00:00:00 2001 From: Fergal Moran Date: Wed, 12 Aug 2015 20:41:16 +0100 Subject: [PATCH] Cleaned up notifications --- api/serializers.py | 12 +++++++----- api/views.py | 5 ++++- spa/models/notification.py | 6 ++++-- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/api/serializers.py b/api/serializers.py index e94b610..3ad5b36 100755 --- a/api/serializers.py +++ b/api/serializers.py @@ -449,9 +449,11 @@ class ActivitySerializer(serializers.HyperlinkedModelSerializer): class NotificationSerializer(serializers.HyperlinkedModelSerializer): - from_user = UserProfileSerializer(many=False, required=False) - display_name = serializers.SerializerMethodField(method_name='get_display_name') - avatar_image = serializers.SerializerMethodField(method_name='get_avatar_image') + from_user = InlineUserProfileSerializer(source='get_from_user', read_only=True) + notification_url = serializers.ReadOnlyField() + verb = serializers.ReadOnlyField() + target = serializers.ReadOnlyField() + date = serializers.ReadOnlyField() class Meta: model = Notification @@ -459,10 +461,10 @@ class NotificationSerializer(serializers.HyperlinkedModelSerializer): 'id', 'notification_url', 'from_user', - 'display_name', - 'avatar_image', 'verb', 'target', + 'date', + 'accepted_date', ) def get_display_name(self, obj): diff --git a/api/views.py b/api/views.py index ec9a7a4..01b8038 100755 --- a/api/views.py +++ b/api/views.py @@ -253,7 +253,10 @@ class NotificationViewSet(viewsets.ModelViewSet): if not user.is_authenticated(): raise PermissionDenied("Not allowed") - return Notification.objects.filter(to_user=user).order_by('-date')[0:5] + return Notification.objects.filter(to_user=user).order_by('-date') + + def perform_update(self, serializer): + return super(NotificationViewSet, self).perform_update(serializer) class GenreViewSet(viewsets.ModelViewSet): diff --git a/spa/models/notification.py b/spa/models/notification.py index cb7c71d..e29d9d8 100755 --- a/spa/models/notification.py +++ b/spa/models/notification.py @@ -29,8 +29,7 @@ class Notification(BaseModel): def get_notification_url(self): return '/api/v1/notification/%s' % self.id - def save(self, force_insert=False, force_update=False, using=None, - update_fields=None): + def __save(self, force_insert=False, force_update=False, using=None, update_fields=None): if self._activity.should_send_email(): self.send_notification_email() @@ -81,3 +80,6 @@ class Notification(BaseModel): except mandrill.Error, e: # Mandrill errors are thrown as exceptions print 'A mandrill error occurred: %s - %s' % (e.__class__, e) + + def get_from_user(self): + return UserProfile.get_user(self.from_user)