gault-millau/apps/account/transfer_data.py
2019-11-06 15:12:33 +03:00

56 lines
1.5 KiB
Python

from pprint import pprint
from django.db.models import Q
from transfer.models import Accounts, Identities
from transfer.serializers.account import UserSerializer
from transfer.serializers.user_social_auth import UserSocialAuthSerializer
STOP_LIST = (
'cyril@tomatic.net',
'cyril2@tomatic.net',
'd.sadykova@id-east.ru',
'd.sadykova@octopod.ru',
'n.yurchenko@id-east.ru',
)
def transfer_user():
# queryset = Profiles.objects.all()
# queryset = queryset.annotate(nickname=F('account__nickname'))
# queryset = queryset.annotate(email=F('account__email'))
queryset = Accounts.objects.filter(confirmed_at__isnull=False).exclude(email__in=STOP_LIST)
serialized_data = UserSerializer(data=list(queryset.values()), many=True)
if serialized_data.is_valid():
serialized_data.save()
else:
pprint(f'News serializer errors: {serialized_data.errors}')
def transfer_identities():
queryset = Identities.objects.exclude(
Q(account_id__isnull=True) |
Q(account__confirmed_at__isnull=True) |
Q(account__email__in=STOP_LIST)
).values_list(
'account_id',
'provider',
'uid',
)
serialized_data = UserSocialAuthSerializer(data=list(queryset.values()), many=True)
if serialized_data.is_valid():
serialized_data.save()
else:
pprint(f'UserSocialAuth serializer errors: {serialized_data.errors}')
data_types = {
'account': [transfer_user],
'identities': [transfer_identities],
}