From 577eb9cceb4a205eaba339945c9f0e56db9d3493 Mon Sep 17 00:00:00 2001 From: Sean Morley Date: Sun, 16 Feb 2025 13:11:35 -0500 Subject: [PATCH] feat: Improve is_visited parameter handling in AdventureViewSet --- backend/server/adventures/views/adventure_view.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/backend/server/adventures/views/adventure_view.py b/backend/server/adventures/views/adventure_view.py index 71be405..28ddab4 100644 --- a/backend/server/adventures/views/adventure_view.py +++ b/backend/server/adventures/views/adventure_view.py @@ -101,13 +101,18 @@ class AdventureViewSet(viewsets.ModelViewSet): is_visited_param = request.query_params.get('is_visited') if is_visited_param is not None: # Convert is_visited_param to a boolean - is_visited_bool = (is_visited_param.lower() == 'true') + if is_visited_param.lower() == 'true': + is_visited_bool = True + elif is_visited_param.lower() == 'false': + is_visited_bool = False + else: + is_visited_bool = None # Filter logic: "visited" means at least one visit with start_date <= today now = timezone.now().date() - if is_visited_bool: + if is_visited_bool is True: queryset = queryset.filter(visits__start_date__lte=now).distinct() - else: + elif is_visited_bool is False: queryset = queryset.exclude(visits__start_date__lte=now).distinct() queryset = self.apply_sorting(queryset)