From c994959dd0ece007084fcf4eca5b6a37aa8599ef Mon Sep 17 00:00:00 2001 From: Marcel Wallschlaeger Date: Tue, 30 Apr 2024 23:13:26 +0200 Subject: [PATCH 1/2] [Fixes #61] Feature: Set full user profile through API --- geonode/base/api/serializers.py | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/geonode/base/api/serializers.py b/geonode/base/api/serializers.py index 79a42039ffe..2fcf10b6f5b 100644 --- a/geonode/base/api/serializers.py +++ b/geonode/base/api/serializers.py @@ -414,13 +414,36 @@ def get_attribute(self, instance): return False + class UserSerializer(BaseDynamicModelSerializer): class Meta: ref_name = "UserProfile" model = get_user_model() name = "user" view_name = "users-list" - fields = ("pk", "username", "first_name", "last_name", "avatar", "perms", "is_superuser", "is_staff", "orcid_identifier") + fields = ("pk", + "username", + "first_name", + "last_name", + "avatar", + "perms", + "is_superuser", + "is_staff", + "email", + "organization", + "profile", + "position", + "voice", + "fax", + "delivery", + "city", + "area", + "zipcode", + "keywords", + "country", + "language", + "timezone" + ) @classmethod def setup_eager_loading(cls, queryset): @@ -442,6 +465,10 @@ def to_representation(self, instance): return data avatar = AvatarUrlField(240, read_only=True) + keywords = ComplexDynamicRelationField( + SimpleHierarchicalKeywordSerializer, embed=False, many=True + ) + class ContactRoleField(DynamicComputedField): From e94cce03059f6846f1d7ba42816cb32a55862e9c Mon Sep 17 00:00:00 2001 From: Marcel Wallschlaeger Date: Mon, 6 May 2024 09:45:28 +0200 Subject: [PATCH 2/2] [Fixes #61] Feature: Set full user profile through API --- geonode/base/api/serializers.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/geonode/base/api/serializers.py b/geonode/base/api/serializers.py index 2fcf10b6f5b..d7e33a90382 100644 --- a/geonode/base/api/serializers.py +++ b/geonode/base/api/serializers.py @@ -442,7 +442,8 @@ class Meta: "keywords", "country", "language", - "timezone" + "timezone", + "orcid_identifier" ) @classmethod