Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions events/tests/test_apis.py
Original file line number Diff line number Diff line change
Expand Up @@ -122,9 +122,9 @@ def test_event_recommendations(self, api_client):

response = api_client.get(reverse("recommendation", args=[event.slug]))
assert response.status_code == status.HTTP_200_OK

returned_ids = {e["id"] for e in response.data}
results = response.data["results"]
returned_ids = {e["id"] for e in results}
assert similar_event.id in returned_ids
assert event.id not in returned_ids
# Similar events + 5 latest events
assert len(response.data) == 6
assert len(results) == 6
11 changes: 7 additions & 4 deletions events/v1/views.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
from rest_framework import status
from rest_framework.generics import ListAPIView, RetrieveAPIView
from rest_framework.response import Response
from rest_framework.views import APIView

from django.shortcuts import get_object_or_404
Expand Down Expand Up @@ -54,9 +52,14 @@ class PlaylistListView(ListAPIView):

class EventRecommendationsView(APIView):
""" View for listing similar events """
pagination_class = CustomPageNumberPagination

def get(self, request, event_slug, *args, **kwargs):
""" Get similar events based on the same playlist, presenter or tags """
similar_events = get_similar_events(event_slug)
serializer = EventSerializer(similar_events, many=True)
return Response(serializer.data, status=status.HTTP_200_OK)

paginator = self.pagination_class()
paginated_events = paginator.paginate_queryset(similar_events, request, view=self)

serializer = EventSerializer(paginated_events, many=True)
return paginator.get_paginated_response(serializer.data)