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 pprint import pprint
from transfer.models import EmailAddresses from account.models import User
from transfer.serializers.notification import SubscriberSerializer from transfer.models import EmailAddresses, NewsletterSubscriber
from transfer.serializers.notification import SubscriberSerializer, NewsletterSubscriberSerializer
def transfer_subscriber(): def transfer_subscriber():
queryset = EmailAddresses.objects.filter(state="usable") queryset = EmailAddresses.objects.filter(state='usable')
serialized_data = SubscriberSerializer(data=list(queryset.values()), many=True) serialized_data = SubscriberSerializer(data=list(queryset.values()), many=True)
if serialized_data.is_valid(): if serialized_data.is_valid():
serialized_data.save() serialized_data.save()
else: else:
pprint(f"News serializer errors: {serialized_data.errors}") pprint(f'News serializer errors: {serialized_data.errors}')
def transfer_newsletter_subscriber(): 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 = { data_types = {
"subscriber": [transfer_subscriber] 'subscriber': [transfer_subscriber],
'newsletter_subscriber': [transfer_newsletter_subscriber],
} }

View File

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

View File

@ -33,3 +33,48 @@ class SubscriberSerializer(serializers.ModelSerializer):
def get_country_code(self, obj): def get_country_code(self, obj):
return obj["country_code"] 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