diff --git a/goodtimes/services.py b/goodtimes/services.py index edc485f..1b86ab9 100644 --- a/goodtimes/services.py +++ b/goodtimes/services.py @@ -402,9 +402,7 @@ class EventFilterService: @staticmethod def filter_events_by_search(search_query=None): today = timezone.now().date() - filtered_events = Event.objects.filter( - deleted=False, active=True, draft=False - ) + filtered_events = Event.objects.filter(deleted=False, active=True, draft=False) # Optional search filtering on title and key_guest (modify as needed) if search_query: @@ -436,7 +434,9 @@ class EventFilterService: filtered_events = ( filtered_events.annotate( matched_tags=Count( - "tags", filter=Q(tags__name__icontains=search_query), distinct=True + "tags", + filter=Q(tags__name__icontains=search_query), + distinct=True, ) ) .filter(matched_tags__gt=0) @@ -475,7 +475,11 @@ class EventFilterService: "id", flat=True ) events = Event.objects.filter( - category__in=preferred_categories_ids, end_date__gte=today + category__in=preferred_categories_ids, + end_date__gte=today, + draft=False, + active=True, + deleted=False, ).distinct() return events diff --git a/manage_events/api/serializers.py b/manage_events/api/serializers.py index 6d9ffc3..a9d3200 100644 --- a/manage_events/api/serializers.py +++ b/manage_events/api/serializers.py @@ -53,6 +53,7 @@ class EventDetailSerializer(serializers.ModelSerializer): is_favorited = serializers.SerializerMethodField() reviews = serializers.SerializerMethodField() principal_interaction = serializers.SerializerMethodField() + draft = serializers.BooleanField(read_only=True) class Meta: model = Event @@ -78,6 +79,7 @@ class EventDetailSerializer(serializers.ModelSerializer): "reviews", "tags", "principal_interaction", + "draft", ] def get_images(self, obj): diff --git a/manage_events/api/views.py b/manage_events/api/views.py index 5acc4ad..fa773bd 100644 --- a/manage_events/api/views.py +++ b/manage_events/api/views.py @@ -186,7 +186,7 @@ class EventsAPIView(APIView): ) else: events = services.EventFilterService.filter_events( - filter, principal=request.user + filter_type=filter, principal=request.user ) serializer = EventDetailSerializer( events, context={"request": request}, many=True