From 44d59775dbfe711ca5dd000e69fc02c4f754a5c7 Mon Sep 17 00:00:00 2001 From: mwallschlaeger Date: Fri, 19 Apr 2024 12:52:31 +0200 Subject: [PATCH] [Fixes #12170] unable to set advanced contact roles in metadata editor --- geonode/base/models.py | 8 ++++++-- geonode/base/widgets.py | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/geonode/base/models.py b/geonode/base/models.py index 57fe4fe7602..99fd263bd93 100644 --- a/geonode/base/models.py +++ b/geonode/base/models.py @@ -1985,9 +1985,13 @@ def __create_role__( ContactRole.objects.filter(role=role, resource=self).delete() return __create_role__(self, role, user_profile) - elif isinstance(user_profile, list) and all(isinstance(x, get_user_model()) for x in user_profile): + elif isinstance(user_profile, list) and all( + get_user_model().objects.filter(username=x).exists() for x in user_profile + ): ContactRole.objects.filter(role=role, resource=self).delete() - return [__create_role__(self, role, profile) for profile in user_profile] + return [ + __create_role__(self, role, user) for user in get_user_model().objects.filter(username__in=user_profile) + ] elif user_profile is None: ContactRole.objects.filter(role=role, resource=self).delete() diff --git a/geonode/base/widgets.py b/geonode/base/widgets.py index 17e3e3c4b17..a4e32bb94d4 100644 --- a/geonode/base/widgets.py +++ b/geonode/base/widgets.py @@ -33,8 +33,8 @@ def value_from_datadict(self, data, files, name) -> List[str]: returns list of selected elements """ - if type(data) is dict and "name" in data: - return data["name"] + if type(data) is dict and name in data: + return data[name] elif type(data) is QueryDict: return data.getlist(name) return []