Skip to content

Commit bf676a4

Browse files
authored
Merge pull request #441 from PROCOLLAB-github/flexivanov237-pro-464
optimized chat checking, if it will break
2 parents d94f2d2 + fcb93cd commit bf676a4

2 files changed

Lines changed: 26 additions & 2 deletions

File tree

chats/serializers.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
ProjectChatMessage,
88
)
99
from files.serializers import UserFileSerializer
10-
from users.serializers import UserListSerializer, UserDetailSerializer
10+
from users.serializers import UserListSerializer, UserDetailSerializer, UserChatSerializer
1111

1212

1313
class DirectChatListSerializer(serializers.ModelSerializer):
@@ -128,7 +128,8 @@ class Meta:
128128

129129

130130
class DirectChatMessageListSerializer(serializers.ModelSerializer):
131-
author = UserDetailSerializer()
131+
# author = UserDetailSerializer()
132+
author = UserChatSerializer()
132133
reply_to = DirectChatMessageSerializer(allow_null=True)
133134
files = serializers.SerializerMethodField()
134135

users/serializers.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -502,6 +502,29 @@ def _update_user_education(self, instance: CustomUser, data: list[dict]) -> None
502502
])
503503

504504

505+
class UserChatSerializer(serializers.ModelSerializer[CustomUser]):
506+
is_online = serializers.SerializerMethodField()
507+
508+
def get_is_online(self, user: CustomUser):
509+
request = self.context.get("request")
510+
if request and request.user.is_authenticated and request.user.id == user.id:
511+
return True
512+
cache_key = get_user_online_cache_key(user)
513+
return cache.get(cache_key, False)
514+
515+
class Meta:
516+
model = CustomUser
517+
fields = [
518+
"id",
519+
"first_name",
520+
"last_name",
521+
"patronymic",
522+
"avatar",
523+
"is_active",
524+
"is_online",
525+
]
526+
527+
505528
class UserListSerializer(
506529
serializers.ModelSerializer[CustomUser], SkillsWriteSerializerMixin
507530
):

0 commit comments

Comments
 (0)