(backend) add API access for 'language' attribute on User model

- allow the language attribute on the user to be updated via API
- add frontend function to update the user language via API
- extend defaults on the test users, to have fixed language in E2E tests
- extend types and variables using the types with the new field
This commit is contained in:
rvveber
2025-03-04 14:00:22 +01:00
committed by Samuel Paccoud
parent 9a79b09b07
commit fda5f8f008
4 changed files with 10 additions and 13 deletions

View File

@@ -23,7 +23,7 @@ class UserSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = models.User model = models.User
fields = ["id", "email", "full_name", "short_name"] fields = ["id", "email", "full_name", "short_name", "language"]
read_only_fields = ["id", "email", "full_name", "short_name"] read_only_fields = ["id", "email", "full_name", "short_name"]

View File

@@ -158,6 +158,7 @@ def test_api_users_retrieve_me_authenticated():
"id": str(user.id), "id": str(user.id),
"email": user.email, "email": user.email,
"full_name": user.full_name, "full_name": user.full_name,
"language": user.language,
"short_name": user.short_name, "short_name": user.short_name,
} }

View File

@@ -7,17 +7,12 @@ NB_OBJECTS = {
} }
DEV_USERS = [ DEV_USERS = [
{"username": "impress", "email": "impress@impress.world", "language": "en-us"},
{"username": "user-e2e-webkit", "email": "user@webkit.e2e", "language": "en-us"},
{"username": "user-e2e-firefox", "email": "user@firefox.e2e", "language": "en-us"},
{ {
"username": "impress", "username": "user-e2e-chromium",
"email": "impress@impress.world", "email": "user@chromium.e2e",
"language": "en-us",
}, },
{
"username": "user-e2e-webkit",
"email": "user@webkit.e2e",
},
{
"username": "user-e2e-firefox",
"email": "user@firefox.e2e",
},
{"username": "user-e2e-chromium", "email": "user@chromium.e2e"},
] ]

View File

@@ -179,7 +179,8 @@ def create_demo(stdout):
is_superuser=False, is_superuser=False,
is_active=True, is_active=True,
is_staff=False, is_staff=False,
language=random.choice(settings.LANGUAGES)[0], language=dev_user["language"]
or random.choice(settings.LANGUAGES)[0],
) )
) )