File tree Expand file tree Collapse file tree 1 file changed +23
-1
lines changed
Expand file tree Collapse file tree 1 file changed +23
-1
lines changed Original file line number Diff line number Diff line change 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
37from lego .apps .permissions .api .views import AllowedPermissionsMixin
48from 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 )
You can’t perform that action at this time.
0 commit comments