diff --git a/manage_events/api/serializers.py b/manage_events/api/serializers.py index ba49028..297a914 100644 --- a/manage_events/api/serializers.py +++ b/manage_events/api/serializers.py @@ -45,6 +45,21 @@ class EventCategorySerializer(serializers.ModelSerializer): fields = ["id", "title", "image", "description", "video_url"] +class EventListSerializer(serializers.ModelSerializer): + class Meta: + model = Event + fields = [ + "id", + "title", + "description", + "start_date", + "end_date", + "entry_fee", + "category", + "image", + ] + + class EventDetailSerializer(serializers.ModelSerializer): tags = TagSerializer(many=True, read_only=True) images = serializers.SerializerMethodField() diff --git a/manage_events/api/views.py b/manage_events/api/views.py index 0068d4e..fe8aec7 100644 --- a/manage_events/api/views.py +++ b/manage_events/api/views.py @@ -25,6 +25,7 @@ from manage_events.api.serializers import ( IAmPrincipalLocationSerializer, PrincipalPreferenceSerializer, VenueSerializer, + EventListSerializer ) from manage_events.models import ( EventInteractionType, @@ -186,7 +187,7 @@ class EventsAPIView(APIView): events = services.EventFilterService.filter_events( filter_type=filter, principal=request.user ) - serializer = EventDetailSerializer( + serializer = EventListSerializer( events, context={"request": request}, many=True ) return ApiResponse.success( @@ -236,7 +237,7 @@ class MyEventsAPIView(APIView): errors="Invalid filter parameter", ) - serializer = EventDetailSerializer( + serializer = EventListSerializer( events, context={"request": request}, many=True ) return ApiResponse.success( @@ -265,7 +266,7 @@ class PrinciaplPreferenceEventsAPIView(APIView): if not events.exists(): # If no events found based on preferences, get future events events = Event.objects.filter(start_date__gt=today) - serializer = EventDetailSerializer(events, many=True) + serializer = EventListSerializer(events, many=True) return ApiResponse.success( status=status.HTTP_200_OK, message=constants.SUCCESS, @@ -641,7 +642,7 @@ class EventFilterByLocationAPIView(APIView): events = Event.objects.filter(venue__id__in=venues_within_range) # Serialize and return the filtered events - serializer = EventDetailSerializer( + serializer = EventListSerializer( events, context={"request": request}, many=True ) return ApiResponse.success( @@ -666,7 +667,7 @@ class FavoriteEventsList(APIView): active=True, draft=False, ) - serializer = EventDetailSerializer( + serializer = EventListSerializer( events, context={"request": request}, many=True ) return ApiResponse.success( @@ -707,7 +708,7 @@ class EventDateRangeAPIView(APIView): & Q(draft=False) ) - serializer = EventDetailSerializer( + serializer = EventListSerializer( events, context={"request": request}, many=True ) return ApiResponse.success( @@ -806,7 +807,7 @@ class PrincipalEventsInteractionView(APIView): events ) # To ensure that the queryset is evaluated and we don't send a QuerySet object in the serializer context - serializer = EventDetailSerializer( + serializer = EventListSerializer( events, context={"request": request}, many=True ) return ApiResponse.success(