You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
padelclub_backend/tournaments/migrations/0115_auto_20250403_1503.py

45 lines
1.4 KiB

# Generated by Django 5.1 on 2025-04-03 12:29
from django.db import migrations
from ..utils.licence_validator import LicenseValidator
def clean_license_ids(apps, schema_editor):
# Get the historical model
CustomUser = apps.get_model('tournaments', 'CustomUser')
# Query all users
users = CustomUser.objects.all()
for user in users:
if user.licence_id:
# Clean up logic - examples:
# 1. Strip whitespace
cleaned_id = user.licence_id.strip()
cleaned_id = cleaned_id.replace(' ', '').strip().upper()
last_char = cleaned_id[-1] if cleaned_id else ''
ends_with_non_alpha = not last_char.isalpha()
if ends_with_non_alpha:
key = LicenseValidator.get_computed_license_key(cleaned_id)
if key:
cleaned_id += key.upper()
# Save the cleaned value
if cleaned_id != user.licence_id:
user.licence_id = cleaned_id
user.save()
def reverse_migration(apps, schema_editor):
# Reversing this migration isn't generally needed for data cleanup
pass
class Migration(migrations.Migration):
dependencies = [
('tournaments', '0114_purchase_creation_date_purchase_last_update_and_more'),
]
operations = [
migrations.RunPython(clean_license_ids, reverse_migration),
]