diff --git a/goodtimes/services.py b/goodtimes/services.py index c340ef9..f4c824d 100644 --- a/goodtimes/services.py +++ b/goodtimes/services.py @@ -399,11 +399,16 @@ class EventFilterService: @staticmethod def filter_events_by_search(search_query=None): today = timezone.now().date() + # Filter events that are active, not deleted, not draft, and created by active users filtered_events = Event.objects.filter( - deleted=False, active=True, draft=False, created_by__is_active=True + deleted=False, + active=True, + draft=False, + created_by__is_active=True, + end_date__gte=today, # Only include events that end today or in the future ) - # Optional search filtering on title and key_guest (modify as needed) + # Optional search filtering on title, key_guest, venue address, and tags if search_query: print("search_query: ", search_query) filtered_events = filtered_events.filter( @@ -414,11 +419,8 @@ class EventFilterService: ) print("filtered_events: ", filtered_events) - # Filter for current, future, or ongoing events - current_and_future_events_query = Q( - start_date__lte=today, end_date__gte=today - ) | Q(start_date__gt=today) - filtered_events = filtered_events.filter(current_and_future_events_query) + # Ensure results are distinct + filtered_events = filtered_events.distinct() return filtered_events @@ -433,7 +435,7 @@ class EventFilterService: active=True, draft=False, created_by__is_active=True, - tags__name__icontains=search_query + tags__name__icontains=search_query, ) # filtered_events = ( @@ -522,7 +524,11 @@ class EventFilterService: | (Q(start_date__lte=tomorrow) & Q(end_date__gte=tomorrow)) ) events = Event.objects.filter( - events_query, active=True, deleted=False, draft=False, created_by__is_active=True, + events_query, + active=True, + deleted=False, + draft=False, + created_by__is_active=True, ).distinct() return events diff --git a/manage_events/forms.py b/manage_events/forms.py index df46ea9..02d2e90 100644 --- a/manage_events/forms.py +++ b/manage_events/forms.py @@ -38,6 +38,8 @@ class EventForm(forms.ModelForm): "age_group", "tags", "draft", + "active", + "deleted", ] widgets = { "title": forms.TextInput(attrs={"class": "form-control"}), diff --git a/manage_events/views.py b/manage_events/views.py index 46d9622..5952aca 100644 --- a/manage_events/views.py +++ b/manage_events/views.py @@ -295,7 +295,7 @@ class EventView(LoginRequiredMixin, generic.ListView): # paginate_by = 10 def get_queryset(self): - return super().get_queryset().filter(deleted=False, active=True, draft=False) + return super().get_queryset().all() def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) diff --git a/templates/manage_events/event_details.html b/templates/manage_events/event_details.html index b96a7b5..e6fff65 100644 --- a/templates/manage_events/event_details.html +++ b/templates/manage_events/event_details.html @@ -30,6 +30,7 @@
Description: {{ event.description }}
+Created By: {{ event.created_by }}
@@ -48,7 +49,7 @@End Time: {{ event.to_time }}
-Status: {{ event.status }}
+Entry: {{ event.entry_type }} - ${{ event.entry_fee }}
{% if event.key_guest %} @@ -86,16 +87,27 @@{{ review.principal }} rated this event {{ review.rating }}/5
-{{ review.review_text }}
+{{ review.review_text }}
+No reviews yet.
+ {% endfor %}No reviews yet.
- {% endfor %}