SciPost Code Repository

Skip to content
Snippets Groups Projects
Commit 8faf86c0 authored by Jean-Sébastien Caux's avatar Jean-Sébastien Caux
Browse files

Make tags user-specific (DRF does not filter nested serializers)

parent ff51403d
No related branches found
No related tags found
No related merge requests found
...@@ -118,7 +118,7 @@ class UserTagSerializer(serializers.ModelSerializer): ...@@ -118,7 +118,7 @@ class UserTagSerializer(serializers.ModelSerializer):
fields = ['pk', 'user', 'label', 'unicode_symbol', 'variant'] fields = ['pk', 'user', 'label', 'unicode_symbol', 'variant']
def get_queryset(self): def get_queryset(self):
user = self.request.user user = self.context['request'].user
return UserTag.objects.filter(user=user) return UserTag.objects.filter(user=user)
...@@ -126,11 +126,17 @@ class StoredMessageSerializer(serializers.ModelSerializer): ...@@ -126,11 +126,17 @@ class StoredMessageSerializer(serializers.ModelSerializer):
attachment_files = AttachmentFileSerializer(many=True) attachment_files = AttachmentFileSerializer(many=True)
event_set = EventSerializer(many=True) event_set = EventSerializer(many=True)
read = serializers.SerializerMethodField() read = serializers.SerializerMethodField()
tags = UserTagSerializer(many=True) tags = serializers.SerializerMethodField()
def get_read(self, obj): def get_read(self, obj):
return self.context['request'].user in obj.read_by.all() return self.context['request'].user in obj.read_by.all()
def get_tags(self, obj):
return UserTagSerializer(
obj.tags.filter(user=self.context['request'].user),
many=True
).data
class Meta: class Meta:
model = StoredMessage model = StoredMessage
fields = ['uuid', 'data', 'datetimestamp', 'attachment_files', 'event_set', 'read', 'tags'] fields = ['uuid', 'data', 'datetimestamp', 'attachment_files', 'event_set', 'read', 'tags']
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment