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