diff --git a/apps/notification/serializers/common.py b/apps/notification/serializers/common.py index 4a9e64f5..e68d4a14 100644 --- a/apps/notification/serializers/common.py +++ b/apps/notification/serializers/common.py @@ -1,4 +1,5 @@ """Notification app serializers.""" + from django.utils.translation import ugettext_lazy as _ from rest_framework import serializers @@ -83,7 +84,7 @@ class SubscribeObjectSerializer(serializers.ModelSerializer): """Meta class.""" model = models.Subscriber - fields = ('subscriber', ) + fields = ('subscriber',) read_only_fields = ('subscribe_date', 'unsubscribe_date',) @@ -91,7 +92,7 @@ class SubscribeSerializer(serializers.ModelSerializer): """Subscribe serializer.""" email = serializers.EmailField(required=False, source='send_to') - subscription_types = SubscriptionTypeSerializer(many=True, read_only=True) + subscription_types = serializers.SerializerMethodField(source='get_subscription_types', read_only=True) class Meta: """Meta class.""" @@ -102,3 +103,10 @@ class SubscribeSerializer(serializers.ModelSerializer): 'subscription_types', 'link_to_unsubscribe', ) + + def get_subscription_types(self, obj): + serializer = SubscriptionTypeSerializer( + obj.subscribe_set.filter(unsubscribe_date=None).values_list('subscription_type', flat=True), + many=True + ) + return serializer.data