From ebd6f6bd543085f88720e0d811e73fc8e4c5730e Mon Sep 17 00:00:00 2001 From: Mads Nylund Date: Thu, 11 Apr 2024 23:29:49 +0200 Subject: [PATCH] init --- app/content/views/user.py | 14 ++++++++++++++ app/group/serializers/group.py | 1 + app/tests/content/test_user_integration.py | 1 + 3 files changed, 16 insertions(+) diff --git a/app/content/views/user.py b/app/content/views/user.py index e0edc6770..359404183 100644 --- a/app/content/views/user.py +++ b/app/content/views/user.py @@ -181,6 +181,20 @@ def get_user_memberships(self, request, pk, *args, **kwargs): context={"request": request}, ) + @action(detail=True, methods=["get"], url_path="memberships-with-fines") + def get_user_memberships_with_fines(self, request, pk, *args, **kwargs): + user = self._get_user(request, pk) + self.check_object_permissions(self.request, user) + + memberships = user.memberships.filter( + group__type__in=GroupType.public_groups(), group__fines_activated=True + ).order_by("-created_at") + return self.paginate_response( + data=memberships, + serializer=MembershipSerializer, + context={"request": request}, + ) + @action(detail=True, methods=["get"], url_path="membership-histories") def get_user_membership_histories(self, request, pk, *args, **kwargs): user = self._get_user(request, pk) diff --git a/app/group/serializers/group.py b/app/group/serializers/group.py index 406cfa733..fd45dd6ce 100644 --- a/app/group/serializers/group.py +++ b/app/group/serializers/group.py @@ -22,6 +22,7 @@ class Meta: "viewer_is_member", "image", "image_alt", + "fines_activated", ) def get_viewer_is_member(self, obj): diff --git a/app/tests/content/test_user_integration.py b/app/tests/content/test_user_integration.py index 139f3bd9a..bd36027e7 100644 --- a/app/tests/content/test_user_integration.py +++ b/app/tests/content/test_user_integration.py @@ -180,6 +180,7 @@ def test_filter_only_users_with_active_strikes( [ ("/", status.HTTP_200_OK), ("/memberships/", status.HTTP_200_OK), + ("/memberships-with-fines/", status.HTTP_200_OK), ("/membership-histories/", status.HTTP_200_OK), ("/badges/", status.HTTP_200_OK), ("/events/", status.HTTP_200_OK),