transfer newsletter_subscriber

This commit is contained in:
alex 2019-11-15 10:21:28 +03:00
parent e922117c61
commit 418ef27694
3 changed files with 72 additions and 6 deletions

View File

@ -1,24 +1,44 @@
from pprint import pprint
from transfer.models import EmailAddresses
from transfer.serializers.notification import SubscriberSerializer
from account.models import User
from transfer.models import EmailAddresses, NewsletterSubscriber
from transfer.serializers.notification import SubscriberSerializer, NewsletterSubscriberSerializer
def transfer_subscriber():
queryset = EmailAddresses.objects.filter(state="usable")
queryset = EmailAddresses.objects.filter(state='usable')
serialized_data = SubscriberSerializer(data=list(queryset.values()), many=True)
if serialized_data.is_valid():
serialized_data.save()
else:
pprint(f"News serializer errors: {serialized_data.errors}")
pprint(f'News serializer errors: {serialized_data.errors}')
def transfer_newsletter_subscriber():
pass
users = User.objects.filter(old_id__isnull=False).values_list('old_id', flat=True)
queryset = NewsletterSubscriber.objects.filter(
email_address__account_id__in=list(users)
).values(
'id',
'email_address__email',
'email_address__account_id',
'email_address__ip',
'email_address__country_code',
'email_address__locale',
'state',
'created_at',
)
serialized_data = NewsletterSubscriberSerializer(data=list(queryset.values()), many=True)
if serialized_data.is_valid():
serialized_data.save()
else:
pprint(f'NewsletterSubscriber serializer errors: {serialized_data.errors}')
data_types = {
"subscriber": [transfer_subscriber]
'subscriber': [transfer_subscriber],
'newsletter_subscriber': [transfer_newsletter_subscriber],
}

View File

@ -38,6 +38,7 @@ class Command(BaseCommand):
'assemblage',
'rating_count',
'product_review',
'newsletter_subscriber', # подписчики на рассылку - переносить после переноса пользователей №1
]
def handle(self, *args, **options):

View File

@ -33,3 +33,48 @@ class SubscriberSerializer(serializers.ModelSerializer):
def get_country_code(self, obj):
return obj["country_code"]
class NewsletterSubscriberSerializer(serializers.Serializer):
pass
# vintage = serializers.IntegerField()
# mark = serializers.FloatField(allow_null=True)
# establishment_id = serializers.IntegerField()
# created_at = serializers.DateTimeField(format='%m-%d-%Y %H:%M:%S')
# aasm_state = serializers.CharField(allow_null=True)
# reviewer_id = serializers.IntegerField()
# id = serializers.IntegerField()
#
# def validate(self, data):
# data.update({
# 'reviewer': self.get_reviewer(data),
# 'status': Review.READY if data['aasm_state'] == 'published' else Review.TO_INVESTIGATE,
# 'published_at': data.pop('created_at'),
# 'old_id': data.pop('id'),
# 'content_object': self.get_establishment(data),
# })
# data.pop('reviewer_id')
# data.pop('establishment_id')
# data.pop('aasm_state')
# return data
#
# def create(self, validated_data):
# obj, _ = Review.objects.update_or_create(
# old_id=validated_data['old_id'],
# defaults=validated_data,
# )
# return obj
#
# @staticmethod
# def get_reviewer(data):
# user = User.objects.filter(old_id=data['reviewer_id']).first()
# if not user:
# raise ValueError(f"User account not found with old_id {data['reviewer_id']}")
# return user
#
# @staticmethod
# def get_establishment(data):
# establishment = Establishment.objects.filter(old_id=data['establishment_id']).first()
# if not establishment:
# raise ValueError(f"Establishment not found with old_id {data['establishment_id']}: ")
# return establishment