From fda5f8f008a637a4764fe04990fabb4256fd4140 Mon Sep 17 00:00:00 2001 From: rvveber Date: Tue, 4 Mar 2025 14:00:22 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8(backend)=20add=20API=20access=20for?= =?UTF-8?q?=20'language'=20attribute=20on=20User=20model?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 --- src/backend/core/api/serializers.py | 2 +- src/backend/core/tests/test_api_users.py | 1 + src/backend/demo/defaults.py | 17 ++++++----------- .../demo/management/commands/create_demo.py | 3 ++- 4 files changed, 10 insertions(+), 13 deletions(-) diff --git a/src/backend/core/api/serializers.py b/src/backend/core/api/serializers.py index a90990c2..4365884a 100644 --- a/src/backend/core/api/serializers.py +++ b/src/backend/core/api/serializers.py @@ -23,7 +23,7 @@ class UserSerializer(serializers.ModelSerializer): class Meta: 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"] diff --git a/src/backend/core/tests/test_api_users.py b/src/backend/core/tests/test_api_users.py index cb3022d3..d99e0406 100644 --- a/src/backend/core/tests/test_api_users.py +++ b/src/backend/core/tests/test_api_users.py @@ -158,6 +158,7 @@ def test_api_users_retrieve_me_authenticated(): "id": str(user.id), "email": user.email, "full_name": user.full_name, + "language": user.language, "short_name": user.short_name, } diff --git a/src/backend/demo/defaults.py b/src/backend/demo/defaults.py index 4f6fb5a2..4b082e39 100644 --- a/src/backend/demo/defaults.py +++ b/src/backend/demo/defaults.py @@ -7,17 +7,12 @@ NB_OBJECTS = { } 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", - "email": "impress@impress.world", + "username": "user-e2e-chromium", + "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"}, ] diff --git a/src/backend/demo/management/commands/create_demo.py b/src/backend/demo/management/commands/create_demo.py index d07df613..74c02709 100644 --- a/src/backend/demo/management/commands/create_demo.py +++ b/src/backend/demo/management/commands/create_demo.py @@ -179,7 +179,8 @@ def create_demo(stdout): is_superuser=False, is_active=True, is_staff=False, - language=random.choice(settings.LANGUAGES)[0], + language=dev_user["language"] + or random.choice(settings.LANGUAGES)[0], ) )