From 99499dc1d10030771513b05c677c328b7d7011a0 Mon Sep 17 00:00:00 2001 From: Loek van Gent Date: Wed, 17 Aug 2022 14:49:02 +0200 Subject: [PATCH] Add has_initiatives to current user api --- bluebottle/members/serializers.py | 6 +++++- bluebottle/members/tests/test_api.py | 12 ++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/bluebottle/members/serializers.py b/bluebottle/members/serializers.py index 5c3e8528d9..eadec905a5 100644 --- a/bluebottle/members/serializers.py +++ b/bluebottle/members/serializers.py @@ -226,6 +226,10 @@ class CurrentUserSerializer(BaseUserPreviewSerializer): segments = serializers.PrimaryKeyRelatedField( many=True, queryset=Segment.objects ) + has_initiatives = serializers.SerializerMethodField() + + def get_has_initiatives(self, obj): + return obj.own_initiatives.exists() class Meta(object): model = BB_USER_MODEL @@ -233,7 +237,7 @@ class Meta(object): 'id_for_ember', 'primary_language', 'email', 'full_name', 'phone_number', 'last_login', 'date_joined', 'location', 'verified', 'permissions', 'matching_options_set', - 'organization', 'segments', 'required' + 'organization', 'segments', 'required', 'has_initiatives' ) diff --git a/bluebottle/members/tests/test_api.py b/bluebottle/members/tests/test_api.py index a45ebf1c7a..43b5b6b430 100644 --- a/bluebottle/members/tests/test_api.py +++ b/bluebottle/members/tests/test_api.py @@ -17,6 +17,7 @@ from bluebottle.auth.middleware import authorization_logger from bluebottle.clients import properties +from bluebottle.initiatives.tests.factories import InitiativeFactory from bluebottle.members.models import MemberPlatformSettings, UserActivity, Member from bluebottle.offices.tests.factories import LocationFactory from bluebottle.segments.tests.factories import SegmentTypeFactory, SegmentFactory @@ -1079,6 +1080,17 @@ def test_get_current_user_with_unverified_required_location(self): response = self.client.get(self.current_user_url, token=self.user_token) self.assertEqual(response.json()['required'], []) + def test_get_current_user_with_initiatives(self): + InitiativeFactory.create( + owner=self.user + ) + response = self.client.get(self.current_user_url, token=self.user_token) + self.assertEqual(response.json()['has_initiatives'], True) + + def test_get_current_user_without_initiatives(self): + response = self.client.get(self.current_user_url, token=self.user_token) + self.assertEqual(response.json()['has_initiatives'], False) + class MemberSettingsAPITestCase(BluebottleTestCase):