Fixed many subscribers
This commit is contained in:
parent
0eba2a4405
commit
8843d5efed
|
|
@ -7,9 +7,9 @@ from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from account.models import User
|
from account.models import User
|
||||||
from location.models import Country
|
from location.models import Country
|
||||||
|
from notification.tasks import send_unsubscribe_email
|
||||||
from utils.methods import generate_string_code
|
from utils.methods import generate_string_code
|
||||||
from utils.models import ProjectBaseMixin, TJSONField, TranslatedFieldsMixin
|
from utils.models import ProjectBaseMixin, TJSONField, TranslatedFieldsMixin
|
||||||
from notification.tasks import send_unsubscribe_email
|
|
||||||
|
|
||||||
|
|
||||||
class SubscriptionType(ProjectBaseMixin, TranslatedFieldsMixin):
|
class SubscriptionType(ProjectBaseMixin, TranslatedFieldsMixin):
|
||||||
|
|
@ -32,9 +32,9 @@ class SubscriberManager(models.Manager):
|
||||||
# search existing object
|
# search existing object
|
||||||
if not user:
|
if not user:
|
||||||
user = User.objects.filter(email=email).first()
|
user = User.objects.filter(email=email).first()
|
||||||
|
|
||||||
if user:
|
if user:
|
||||||
obj = self.model.objects.filter(models.Q(user=user) | models.Q(
|
obj = self.model.objects.filter(models.Q(user=user) | models.Q(email=user.email)).first()
|
||||||
email=user.email)).first()
|
|
||||||
else:
|
else:
|
||||||
obj = self.model.objects.filter(email=email).first()
|
obj = self.model.objects.filter(email=email).first()
|
||||||
|
|
||||||
|
|
@ -43,31 +43,39 @@ class SubscriberManager(models.Manager):
|
||||||
if user:
|
if user:
|
||||||
obj.user = user
|
obj.user = user
|
||||||
obj.email = None
|
obj.email = None
|
||||||
|
|
||||||
else:
|
else:
|
||||||
obj.email = email
|
obj.email = email
|
||||||
|
|
||||||
obj.ip_address = ip_address
|
obj.ip_address = ip_address
|
||||||
obj.country_code = country_code
|
obj.country_code = country_code
|
||||||
obj.locale = locale
|
obj.locale = locale
|
||||||
obj.update_code = generate_string_code()
|
obj.update_code = generate_string_code()
|
||||||
obj.save()
|
obj.save()
|
||||||
obj.subscription_types.set(subscription_types)
|
|
||||||
obj.subscribe_set.update(unsubscribe_date=None)
|
|
||||||
else:
|
else:
|
||||||
obj = self.model.objects.create(user=user, email=email, ip_address=ip_address,
|
obj = self.model.objects.create(
|
||||||
country_code=country_code, locale=locale)
|
user=user, email=email, ip_address=ip_address,
|
||||||
obj.subscription_types.set(subscription_types)
|
country_code=country_code, locale=locale
|
||||||
obj.subscribe_set.update(unsubscribe_date=None)
|
)
|
||||||
|
|
||||||
|
obj.subscription_types.set(subscription_types)
|
||||||
|
obj.subscribe_set.update(unsubscribe_date=None)
|
||||||
|
|
||||||
return obj
|
return obj
|
||||||
|
|
||||||
def associate_user(self, user):
|
def associate_user(self, user):
|
||||||
"""Associate user."""
|
"""Associate user."""
|
||||||
obj = self.model.objects.filter(user=user).first()
|
obj = self.model.objects.filter(user=user).first()
|
||||||
|
|
||||||
if obj is None:
|
if obj is None:
|
||||||
obj = self.model.objects.filter(email=user.email_confirmed, user__isnull=True).first()
|
obj = self.model.objects.filter(email=user.email_confirmed, user__isnull=True).first()
|
||||||
|
|
||||||
if obj:
|
if obj:
|
||||||
obj.user = user
|
obj.user = user
|
||||||
obj.email = None
|
obj.email = None
|
||||||
obj.save()
|
obj.save()
|
||||||
|
|
||||||
return obj
|
return obj
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -47,10 +47,9 @@ class SubscribeInfoAuthUserView(generics.RetrieveAPIView):
|
||||||
user = self.request.user
|
user = self.request.user
|
||||||
|
|
||||||
if user.is_authenticated:
|
if user.is_authenticated:
|
||||||
try:
|
subscriber = models.Subscriber.objects.filter(user=user).first()
|
||||||
subscriber = models.Subscriber.objects.get(user=user)
|
|
||||||
|
|
||||||
except models.Subscriber.DoesNotExist:
|
if subscriber is None:
|
||||||
subscriber = models.Subscriber.objects.make_subscriber(
|
subscriber = models.Subscriber.objects.make_subscriber(
|
||||||
email=user.email, user=user, ip_address=get_user_ip(self.request),
|
email=user.email, user=user, ip_address=get_user_ip(self.request),
|
||||||
country_code=self.request.country_code, locale=self.request.locale
|
country_code=self.request.country_code, locale=self.request.locale
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user