Added history to subscriptions
This commit is contained in:
parent
5a1d33c981
commit
8acb86a5ab
|
|
@ -137,10 +137,14 @@ class Subscriber(ProjectBaseMixin):
|
|||
"""Unsubscribe user."""
|
||||
|
||||
self.subscribe_set.update(
|
||||
unsunbscribe_date=now(),
|
||||
unsubscribe_date=now(),
|
||||
old_subscriber_id=F('subscriber_id'),
|
||||
old_subscription_type_id=F('subscription_type_id')
|
||||
).update(subscriber_id=None, subscription_type_id=None)
|
||||
)
|
||||
self.subscribe_set.update(
|
||||
subscriber_id=None,
|
||||
subscription_type_id=None
|
||||
)
|
||||
|
||||
if settings.USE_CELERY:
|
||||
send_unsubscribe_email.delay(self.email)
|
||||
|
|
@ -166,6 +170,10 @@ class Subscriber(ProjectBaseMixin):
|
|||
def active_subscriptions(self):
|
||||
return self.subscription_types.exclude(subscriber__subscribe__unsubscribe_date__isnull=False)
|
||||
|
||||
@property
|
||||
def subscription_history(self):
|
||||
return Subscribe.objects.subscription_history(self.pk)
|
||||
|
||||
|
||||
class SubscribeQuerySet(models.QuerySet):
|
||||
|
||||
|
|
|
|||
|
|
@ -141,14 +141,24 @@ class UpdateSubscribeSerializer(serializers.ModelSerializer):
|
|||
|
||||
|
||||
class SubscribeObjectSerializer(serializers.ModelSerializer):
|
||||
"""Subscribe serializer."""
|
||||
"""Subscription type serializer."""
|
||||
|
||||
subscription_type = serializers.SerializerMethodField()
|
||||
|
||||
class Meta:
|
||||
"""Meta class."""
|
||||
|
||||
model = models.Subscriber
|
||||
fields = ('subscriber',)
|
||||
read_only_fields = ('subscribe_date', 'unsubscribe_date',)
|
||||
model = models.Subscribe
|
||||
fields = (
|
||||
'subscribe_date',
|
||||
'unsubscribe_date',
|
||||
'subscription_type'
|
||||
)
|
||||
|
||||
def get_subscription_type(self, instance):
|
||||
return SubscriptionTypeSerializer(
|
||||
models.SubscriptionType.objects.get(pk=instance.old_subscription_type_id)
|
||||
).data
|
||||
|
||||
|
||||
class SubscribeSerializer(serializers.ModelSerializer):
|
||||
|
|
@ -156,6 +166,7 @@ class SubscribeSerializer(serializers.ModelSerializer):
|
|||
|
||||
email = serializers.EmailField(required=False, source='send_to')
|
||||
subscription_types = SubscriptionTypeSerializer(source='active_subscriptions', read_only=True, many=True)
|
||||
history = SubscribeObjectSerializer(source='subscription_history', many=True)
|
||||
|
||||
class Meta:
|
||||
"""Meta class."""
|
||||
|
|
@ -165,6 +176,7 @@ class SubscribeSerializer(serializers.ModelSerializer):
|
|||
'email',
|
||||
'subscription_types',
|
||||
'link_to_unsubscribe',
|
||||
'history',
|
||||
)
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ from django.template.loader import get_template, render_to_string
|
|||
|
||||
from main.models import SiteSettings
|
||||
from notification import models
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
|
||||
@shared_task
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user