80 lines
2.6 KiB
Python
80 lines
2.6 KiB
Python
# Generated by Django 3.2.19 on 2023-06-30 02:39
|
|
|
|
from django.conf import settings
|
|
from django.db import migrations, models
|
|
|
|
from users.models.user import UsernameValidator
|
|
|
|
|
|
def move_username(apps, schema_editor):
|
|
User = apps.get_model("users", "User")
|
|
for u in User.objects.all():
|
|
u.mastodon_username = u.username
|
|
u.username = u.mastodon_username + "@" + u.mastodon_site
|
|
u.save()
|
|
|
|
|
|
def clear_username(apps, schema_editor):
|
|
User = apps.get_model("users", "User")
|
|
for u in User.objects.all():
|
|
u.username = None if settings.MASTODON_ALLOW_ANY_SITE else u.mastodon_username
|
|
u.save()
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
dependencies = [
|
|
("users", "0004_alter_preference_classic_homepage"),
|
|
]
|
|
|
|
operations = [
|
|
migrations.RemoveConstraint(
|
|
model_name="user",
|
|
name="unique_user_identity",
|
|
),
|
|
migrations.AddField(
|
|
model_name="user",
|
|
name="mastodon_username",
|
|
field=models.CharField(default=None, max_length=100, null=True),
|
|
),
|
|
migrations.AlterField(
|
|
model_name="user",
|
|
name="mastodon_site",
|
|
field=models.CharField(default=None, max_length=100, null=True),
|
|
),
|
|
migrations.AlterField(
|
|
model_name="user",
|
|
name="mastodon_id",
|
|
field=models.CharField(default=None, max_length=100, null=True),
|
|
),
|
|
migrations.RunPython(move_username),
|
|
migrations.RunSQL(
|
|
"UPDATE users_user SET mastodon_id = null where mastodon_id = '0';"
|
|
),
|
|
migrations.AlterField(
|
|
model_name="user",
|
|
name="username",
|
|
field=models.CharField(
|
|
error_messages={"unique": "A user with that username already exists."},
|
|
help_text="Required. 50 characters or fewer. Letters, digits and _ only.",
|
|
max_length=100,
|
|
null=True,
|
|
unique=True,
|
|
validators=[UsernameValidator()],
|
|
verbose_name="username",
|
|
),
|
|
),
|
|
migrations.RunPython(clear_username),
|
|
migrations.AddConstraint(
|
|
model_name="user",
|
|
constraint=models.UniqueConstraint(
|
|
fields=("mastodon_username", "mastodon_site"),
|
|
name="unique_mastodon_username",
|
|
),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name="user",
|
|
constraint=models.UniqueConstraint(
|
|
fields=("mastodon_id", "mastodon_site"), name="unique_mastodon_id"
|
|
),
|
|
),
|
|
]
|