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',)