profiles: get online status if friend

This commit is contained in:
AdrienLSH
2024-04-26 16:20:15 +02:00
parent 55d29d5763
commit 743988c883
2 changed files with 24 additions and 4 deletions

View File

@ -10,10 +10,30 @@ class ProfileSerializer(serializers.ModelSerializer):
username = serializers.ReadOnlyField(source='user.username')
avatar = serializers.ImageField(required=False)
online = serializers.SerializerMethodField()
class Meta:
model = ProfileModel
fields = ["username", "avatar", "id"]
fields = ["username", "avatar", "id", 'online']
def get_online(self, obj: ProfileModel):
from notice.consumers import notice_manager
user = None
request = self.context.get("request")
if request and hasattr(request, "user"):
user = request.user
if user is None:
return False
if user.pk == obj.pk:
return True
if not user.profilemodel.is_friend(obj):
return None
return notice_manager.get_consumer_by_user(obj.user) is not None
def validate_avatar(self, value):
'''