diff --git a/src/snek/model/channel_member.py b/src/snek/model/channel_member.py index 5a8332e..9689fa5 100644 --- a/src/snek/model/channel_member.py +++ b/src/snek/model/channel_member.py @@ -22,11 +22,11 @@ class ChannelMemberModel(BaseModel): return await self.app.services.channel.get(uid=self['channel_uid']) async def get_name(self): - if self["channel_uid"] == "dm": + channel = await self.get_channel() + if channel["tag"] == "dm": user = await self.get_other_dm_user() return user['nick'] - channel = await self.get_channel() - return channel['name'] + return channel['name'] or self['label'] async def get_other_dm_user(self): channel = await self.get_channel() @@ -37,4 +37,4 @@ class ChannelMemberModel(BaseModel): if model["uid"] != self['uid']: return await self.app.services.user.get(uid=model["user_uid"]) return await self.get_user() - \ No newline at end of file + diff --git a/src/snek/service/channel_member.py b/src/snek/service/channel_member.py index 191a063..42415d1 100644 --- a/src/snek/service/channel_member.py +++ b/src/snek/service/channel_member.py @@ -36,7 +36,11 @@ class ChannelMemberService(BaseService): async def get_dm(self,from_user, to_user): async for model in self.query("SELECT channel_member.* FROM channel_member INNER JOIN channel ON (channel.uid = channel_member.channel_uid and channel.tag = 'dm') INNER JOIN channel_member AS channel_member2 ON(channel_member2.channel_uid = channel.uid AND channel_member2.user_uid = :to_user) WHERE channel_member.user_uid=:from_user " ,dict(from_user=from_user, to_user=to_user)): return model - return None + if not from_user == to_user: + return None + async for model in self.query("SELECT channel_member.* FROM channel_member INNER JOIN channel ON (channel.uid = channel_member.channel_uid and channel.tag = 'dm') LEFT JOIN channel_member AS channel_member2 ON(channel_member2.channel_uid = NULL AND channel_member2.user_uid = NULL) WHERE channel_member.user_uid=:from_user " ,dict(from_user=from_user, to_user=to_user)): + + return model async def get_other_dm_user(self, channel_uid, user_uid): channel_member = await self.get(channel_uid=channel_uid, user_uid=user_uid) diff --git a/src/snek/templates/threads.html b/src/snek/templates/threads.html index b982914..73c256a 100644 --- a/src/snek/templates/threads.html +++ b/src/snek/templates/threads.html @@ -5,18 +5,18 @@