58 lines
1.8 KiB
Python
58 lines
1.8 KiB
Python
from django.db import migrations, models
|
|
from django.db.models.functions import Lower
|
|
|
|
|
|
def forwards(apps, schema_editor):
|
|
if schema_editor:
|
|
pass
|
|
User = apps.get_model("authv", "User")
|
|
User.objects.all().update(language=Lower("language"))
|
|
|
|
|
|
def backwards(apps, schema_editor):
|
|
if schema_editor:
|
|
pass
|
|
User = apps.get_model("authv", "User")
|
|
for u in User.objects.all():
|
|
parts = u.language.split("-", 1)
|
|
if len(parts) == 2:
|
|
u.language = f"{parts[0].lower()}-{parts[1].upper()}"
|
|
u.save(update_fields=["language"])
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
dependencies = [
|
|
("authv", "0002_blacklistedtoken_outstandingtoken"),
|
|
]
|
|
|
|
operations = [
|
|
migrations.RunPython(forwards, backwards),
|
|
migrations.AlterField(
|
|
model_name="user",
|
|
name="language",
|
|
field=models.CharField(
|
|
choices=[
|
|
("en-gb", "English (British)"),
|
|
("ar-ar", "العربية"),
|
|
("cs-cz", "Česky"),
|
|
("da-dk", "Dansk"),
|
|
("de-de", "Deutsch"),
|
|
("en-us", "English (American)"),
|
|
("es-es", "Español"),
|
|
("fr-fr", "Français"),
|
|
("hi-in", "हिंदी"),
|
|
("it-it", "Italiano"),
|
|
("ja-jp", "日本語"),
|
|
("kk-kz", "Қазақ"),
|
|
("nl-nl", "Nederlands"),
|
|
("pl-pl", "Polska"),
|
|
("pt-br", "Português"),
|
|
("ro-ro", "Română"),
|
|
("ru-ru", "Русский"),
|
|
("zh-hans", "简体中文"),
|
|
],
|
|
default="en-gb",
|
|
max_length=7,
|
|
),
|
|
),
|
|
]
|