Skip to content

Commit 706fe69

Browse files
committed
Add endpoint to get random interestgroups
1 parent e8482a0 commit 706fe69

File tree

1 file changed

+23
-1
lines changed

1 file changed

+23
-1
lines changed

lego/apps/users/views/abakus_groups.py

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
1-
from rest_framework import viewsets
1+
from random import sample
2+
3+
from rest_framework import status, viewsets
4+
from rest_framework.decorators import action
5+
from rest_framework.response import Response
26

37
from lego.apps.permissions.api.views import AllowedPermissionsMixin
48
from lego.apps.permissions.constants import EDIT
@@ -43,3 +47,21 @@ def get_queryset(self):
4347
return AbakusGroup.objects_with_text.prefetch_related("users").all()
4448

4549
return self.queryset
50+
51+
@action(detail=False, methods=["GET"])
52+
def random_interests(self, request):
53+
queryset = self.get_queryset().filter(type="interesse", active=True)
54+
55+
values = queryset.values_list("pk", flat=True)
56+
if not values:
57+
return Response(status=status.HTTP_204_NO_CONTENT)
58+
59+
values = list(values)
60+
61+
if len(values) > 3:
62+
values = sample(values, 3)
63+
64+
random_qs = queryset.filter(pk__in=values)
65+
66+
serializer = self.get_serializer(random_qs, many=True)
67+
return Response(serializer.data)

0 commit comments

Comments
 (0)