Skip to content

Commit

Permalink
Add endpoint to get random interestgroups
Browse files Browse the repository at this point in the history
  • Loading branch information
PeterJFB committed May 1, 2022
1 parent e8482a0 commit 706fe69
Showing 1 changed file with 23 additions and 1 deletion.
24 changes: 23 additions & 1 deletion lego/apps/users/views/abakus_groups.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
from rest_framework import viewsets
from random import sample

from rest_framework import status, viewsets
from rest_framework.decorators import action
from rest_framework.response import Response

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

return self.queryset

@action(detail=False, methods=["GET"])
def random_interests(self, request):
queryset = self.get_queryset().filter(type="interesse", active=True)

values = queryset.values_list("pk", flat=True)
if not values:
return Response(status=status.HTTP_204_NO_CONTENT)

values = list(values)

if len(values) > 3:
values = sample(values, 3)

random_qs = queryset.filter(pk__in=values)

serializer = self.get_serializer(random_qs, many=True)
return Response(serializer.data)

0 comments on commit 706fe69

Please sign in to comment.