Fixed missing user in comments

This commit is contained in:
Fergal Moran
2015-06-07 16:05:14 +01:00
parent ba0e0e709a
commit f5fb55f02b
4 changed files with 30 additions and 19 deletions

View File

@@ -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)

View File

@@ -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:

View File

@@ -8,6 +8,7 @@ from core.utils import url
from dss import localsettings, settings
class BaseModel(models.Model):
logger = logging.getLogger(__name__)

View File

@@ -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