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 @@

{{ event.brand.title }}

{{ event.title }}

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 @@
Event Reviews
- {% for review in reviews %} -
-

{{ review.principal }} rated this event {{ review.rating }}/5

-

{{ review.review_text }}

+
+ {% for review in reviews %} +
+

+ +

+
+
+

{{ review.review_text }}

+
+
+
+ {% empty %} +

No reviews yet.

+ {% endfor %}
- {% empty %} -

No reviews yet.

- {% endfor %}
+
diff --git a/templates/manage_events/event_list.html b/templates/manage_events/event_list.html index 1cf37e4..3cc449d 100644 --- a/templates/manage_events/event_list.html +++ b/templates/manage_events/event_list.html @@ -51,6 +51,8 @@ aria-sort="ascending" style="width: 69.2656px;"> Start Time End Time + Principal Active {{data_obj.end_date}} {{data_obj.from_time}} {{data_obj.to_time}} + {{data_obj.created_by}} {{data_obj.active}} @@ -87,7 +90,7 @@ d="M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"> -