Stripe checkout #104411
30
users/migrations/0011_backfill_missing_customers.py
Normal file
30
users/migrations/0011_backfill_missing_customers.py
Normal file
@ -0,0 +1,30 @@
|
||||
# Generated by Django 3.2.16 on 2024-06-10 08:52
|
||||
import logging
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
logger.setLevel(logging.INFO)
|
||||
|
||||
|
||||
def create_missing_customers(apps, schema_editor):
|
||||
Customer = apps.get_model('looper', 'Customer')
|
||||
User = apps.get_model('users', 'User')
|
||||
user_q = User.objects.filter(customer=None)
|
||||
logger.info('%s accounts are missing a Customer records', user_q.count())
|
||||
to_create = []
|
||||
for user in user_q:
|
||||
to_create.append(Customer(user_id=user.pk, billing_email=user.email))
|
||||
if to_create:
|
||||
Customer.objects.bulk_create(to_create)
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('users', '0010_user_confirmed_email_at'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RunPython(create_missing_customers, reverse_code=migrations.RunPython.noop),
|
||||
]
|
@ -211,8 +211,12 @@ class User(AbstractUser):
|
||||
logger.warning('Deleting address records of user pk=%s', self.pk)
|
||||
looper.models.Address.objects.filter(user_id=self.pk).delete()
|
||||
|
||||
logger.warning('Deleting customer records of user pk=%s', self.pk)
|
||||
looper.models.Customer.objects.filter(user_id=self.pk).delete()
|
||||
logger.warning('Anonymizing Customer record of user pk=%s', self.pk)
|
||||
looper.models.Customer.objects.exclude(user_id=None).filter(user_id=self.pk).update(
|
||||
billing_email=f'{username}@example.com',
|
||||
full_name='',
|
||||
)
|
||||
|
||||
looper.models.GatewayCustomerId.objects.filter(user_id=self.pk).delete()
|
||||
|
||||
subscriptions.models.TeamUsers.objects.filter(user_id=self.pk).delete()
|
||||
|
@ -144,7 +144,7 @@ class TestTasks(TestCase):
|
||||
f'Soft-deleting payment methods records of user pk={user.pk}',
|
||||
rf'Deleting payment method \d+ of user pk={user.pk} at the payment gateway',
|
||||
f'Deleting address records of user pk={user.pk}',
|
||||
f'Deleting customer records of user pk={user.pk}',
|
||||
f'Anonymizing Customer record of user pk={user.pk}',
|
||||
f'Anonymizing comments of user pk={user.pk}',
|
||||
f'Anonymizing likes of user pk={user.pk}',
|
||||
f'Deleting actions of user pk={user.pk}',
|
||||
@ -166,8 +166,12 @@ class TestTasks(TestCase):
|
||||
self.assertEqual(user.full_name, '')
|
||||
self.assertTrue(user.email.startswith('del'))
|
||||
self.assertTrue(user.email.endswith('@example.com'))
|
||||
with self.assertRaises(User.customer.RelatedObjectDoesNotExist):
|
||||
user.customer
|
||||
user.customer.refresh_from_db()
|
||||
self.assertTrue(user.customer.billing_email.startswith('del'), user.customer.billing_email)
|
||||
self.assertTrue(
|
||||
user.customer.billing_email.endswith('@example.com'), user.customer.billing_email
|
||||
)
|
||||
self.assertEqual(user.customer.full_name, '', user.customer.full_name)
|
||||
self.assertEqual(user.address_set.count(), 0)
|
||||
self.assertEqual(user.paymentmethod_set.first().recognisable_name, '')
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user