Fix unsubscribe bug

This commit is contained in:
dormantman 2020-01-10 16:11:10 +03:00
parent fcfebcd952
commit 2800f2f158
2 changed files with 10 additions and 3 deletions

View File

@ -115,7 +115,6 @@ class Subscriber(ProjectBaseMixin):
def unsubscribe(self, query: dict):
"""Unsubscribe user."""
self.subscribe_set.update(unsubscribe_date=now())
self.subscription_types = []
@property
def send_to(self):

View File

@ -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