diff --git a/api/views.py b/api/views.py index f99215c..5887605 100644 --- a/api/views.py +++ b/api/views.py @@ -312,7 +312,7 @@ class ChatViewset(viewsets.ModelViewSet, LogMixin): messages = TalkMessages.objects.filter((Q(talk__user_one__email = username) & Q(talk__user_two__email = user_two)) | (Q(talk__user_one__email = user_two) & Q(talk__user_two__email = username))).order_by('-create_date') - serializer = ChatSerializer(messages, many = True) + serializer = ChatSerializer(messages, many = True, context = {"request_user": username}) json_r = json.dumps(serializer.data) json_r = json.loads(json_r) diff --git a/chat/serializers.py b/chat/serializers.py index 934ccc2..9eeae6a 100644 --- a/chat/serializers.py +++ b/chat/serializers.py @@ -1,6 +1,8 @@ from rest_framework import serializers -from .models import TalkMessages +from django.db.models import Q + +from .models import TalkMessages, ChatFavorites from subjects.serializers import SubjectSerializer from users.serializers import UserSerializer @@ -8,7 +10,16 @@ from users.serializers import UserSerializer class ChatSerializer(serializers.ModelSerializer): user = UserSerializer() subject = SubjectSerializer() + favorite = serializers.SerializerMethodField() + + def get_favorite(self, message): + user = self.context.get("request_user", None) + + if not user is None: + return ChatFavorites.objects.filter(Q(user__email = user) & Q(message = message)).exists() + + return False class Meta: model = TalkMessages - fields = ('text', 'user', 'subject', 'image_url', 'create_date', ) + fields = ('text', 'user', 'subject', 'image_url', 'create_date', 'favorite') -- libgit2 0.21.2