diff --git a/api/serializers.py b/api/serializers.py index 2c8252f..50a117c 100755 --- a/api/serializers.py +++ b/api/serializers.py @@ -319,29 +319,28 @@ class CommentSerializer(serializers.HyperlinkedModelSerializer): user = InlineUserProfileSerializer(source='get_comment_user', read_only=True) avatar_image = serializers.SerializerMethodField() mix = serializers.PrimaryKeyRelatedField(read_only=True) + display_name = serializers.SerializerMethodField() + slug = serializers.SerializerMethodField() can_edit = serializers.SerializerMethodField() class Meta: model = Comment fields = ( 'id', + 'user', 'comment', 'time_index', 'date_created', 'user', 'avatar_image', 'mix', + 'display_name', + 'slug', 'can_edit' ) def get_comment_user(self, obj): - try: - if obj.user is not None: - return obj.user.get_nice_name() - except: - pass - - return settings.DEFAULT_USER_NAME + return UserProfile.get_user(self.user) def get_display_name(self, obj): if obj.user is not None: @@ -349,6 +348,12 @@ class CommentSerializer(serializers.HyperlinkedModelSerializer): else: return settings.DEFAULT_USER_NAME + def get_slug(self, obj): + if obj.user is not None: + return obj.user.userprofile.slug + else: + return "" + def get_avatar_image(self, obj): if obj.user is not None: return obj.user.userprofile.get_sized_avatar_image(48, 48) diff --git a/spa/models/activity.py b/spa/models/activity.py index f31131e..3f2c9ea 100755 --- a/spa/models/activity.py +++ b/spa/models/activity.py @@ -33,18 +33,7 @@ class Activity(BaseModel): return "%s" % self.get_object_name() def get_user(self): - if self.user is not None: - return self.user - else: - username = 'anonymous' - u = User(username=username, first_name='Anonymous', last_name='User') - u.set_unusable_password() - - u.username = u.id - - # comment out the next two lines if you aren't using profiles - p = UserProfile(user=u) - return p + return UserProfile.get_user(self.user) def post_social(self): if settings.DEBUG: diff --git a/spa/models/basemodel.py b/spa/models/basemodel.py index 4a33fd3..eb8e78b 100755 --- a/spa/models/basemodel.py +++ b/spa/models/basemodel.py @@ -8,6 +8,7 @@ from core.utils import url from dss import localsettings, settings + class BaseModel(models.Model): logger = logging.getLogger(__name__) diff --git a/spa/models/userprofile.py b/spa/models/userprofile.py index 9060ce7..3f6d8c2 100755 --- a/spa/models/userprofile.py +++ b/spa/models/userprofile.py @@ -205,3 +205,19 @@ class UserProfile(BaseModel): @classmethod def get_default_display_name(cls): return settings.DEFAULT_USER_NAME + + @classmethod + def get_user(cls, user): + if user is not None: + return user + else: + username = 'anonymous' + u = User(username=username, first_name='Anonymous', last_name='User') + u.set_unusable_password() + + u.username = u.id + + # comment out the next two lines if you aren't using profiles + p = UserProfile(user=u) + return p +