From a8f053a6465b2f74caf59f887ca1515cffbd68e1 Mon Sep 17 00:00:00 2001 From: dormantman Date: Wed, 25 Dec 2019 11:16:05 +0300 Subject: [PATCH] Added last subscribe/unsubscribe dates --- apps/notification/models.py | 8 +++++++- apps/notification/serializers/common.py | 2 ++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/apps/notification/models.py b/apps/notification/models.py index a7eebbe8..5a83a598 100644 --- a/apps/notification/models.py +++ b/apps/notification/models.py @@ -1,10 +1,12 @@ """Notification app models.""" from django.conf import settings from django.db import models +from django.utils.timezone import now from django.utils.translation import ugettext_lazy as _ + from account.models import User from utils.methods import generate_string_code -from utils.models import ProjectBaseMixin, TranslatedFieldsMixin, TJSONField +from utils.models import ProjectBaseMixin, TJSONField, TranslatedFieldsMixin class SubscriptionType(ProjectBaseMixin, TranslatedFieldsMixin): @@ -109,6 +111,9 @@ class Subscriber(ProjectBaseMixin): subscription_type = models.ForeignKey(SubscriptionType, on_delete=models.CASCADE, null=True, default=None) + subscribe_date = models.DateTimeField(_('Last subscribe date', blank=True, null=True, default=now)) + unsubscribe_date = models.DateTimeField(_('Last unsubscribe date'), blank=True, null=True, default=None) + objects = SubscriberManager.from_queryset(SubscriberQuerySet)() class Meta: @@ -125,6 +130,7 @@ class Subscriber(ProjectBaseMixin): def unsubscribe(self): """Unsubscribe user.""" + self.unsubscribe_date = now() self.state = self.UNUSABLE self.save() diff --git a/apps/notification/serializers/common.py b/apps/notification/serializers/common.py index 2f15b733..c7bfec42 100644 --- a/apps/notification/serializers/common.py +++ b/apps/notification/serializers/common.py @@ -35,6 +35,8 @@ class SubscribeSerializer(serializers.ModelSerializer): 'email', 'subscription_type', 'state', + 'subscribe_date', + 'unsubscribe_date' ) read_only_fields = ('state',)