changes in event details, event list and event filter api
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -38,6 +38,8 @@ class EventForm(forms.ModelForm):
|
||||
"age_group",
|
||||
"tags",
|
||||
"draft",
|
||||
"active",
|
||||
"deleted",
|
||||
]
|
||||
widgets = {
|
||||
"title": forms.TextInput(attrs={"class": "form-control"}),
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
<h2 class="card-title">{{ event.brand.title }}</h2>
|
||||
<h3 class="card-title">{{ event.title }}</h3>
|
||||
<p class="card-text"><strong>Description:</strong> {{ event.description }}</p>
|
||||
<p class="card-text"><strong>Created By:</strong> {{ event.created_by }}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -48,7 +49,7 @@
|
||||
<p class="card-text"><strong>End Time:</strong> {{ event.to_time }}</p>
|
||||
</div>
|
||||
</div>
|
||||
<p class="card-text"><strong>Status:</strong> {{ event.status }}</p>
|
||||
<!-- <p class="card-text"><strong>Status:</strong> {{ event.status }}</p> -->
|
||||
<p class="card-text"><strong>Entry:</strong> {{ event.entry_type }} - ${{ event.entry_fee }}</p>
|
||||
<!-- Key Guests Section -->
|
||||
{% if event.key_guest %}
|
||||
@@ -86,16 +87,27 @@
|
||||
<div class="card mb-3">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">Event Reviews</h5>
|
||||
{% for review in reviews %}
|
||||
<div class="border-bottom mb-2 pb-2">
|
||||
<p class="mb-1"><strong>{{ review.principal }}</strong> rated this event {{ review.rating }}/5</p>
|
||||
<p>{{ review.review_text }}</p>
|
||||
<div class="accordion" id="reviewsAccordion">
|
||||
{% for review in reviews %}
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header" id="heading{{ forloop.counter }}">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapse{{ forloop.counter }}" aria-expanded="true" aria-controls="collapse{{ forloop.counter }}">
|
||||
{{ review.principal }} rated this event {{ review.rating }}/5
|
||||
</button>
|
||||
</h2>
|
||||
<div id="collapse{{ forloop.counter }}" class="accordion-collapse collapse" aria-labelledby="heading{{ forloop.counter }}" data-bs-parent="#reviewsAccordion">
|
||||
<div class="accordion-body">
|
||||
<p>{{ review.review_text }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% empty %}
|
||||
<p>No reviews yet.</p>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% empty %}
|
||||
<p>No reviews yet.</p>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- Tags Section -->
|
||||
<div class="card mb-3">
|
||||
|
||||
@@ -51,6 +51,8 @@
|
||||
aria-sort="ascending" style="width: 69.2656px;"> Start Time </th>
|
||||
<th class="checkbox-column sorting_asc" tabindex="0" aria-controls="style-3"
|
||||
aria-sort="ascending" style="width: 69.2656px;"> End Time </th>
|
||||
<th class="checkbox-column sorting_asc" tabindex="0" aria-controls="style-3"
|
||||
aria-sort="ascending" style="width: 69.2656px;"> Principal </th>
|
||||
<th class="sorting" tabindex="7" aria-controls="style-3"
|
||||
style="width: 79.7969px;">Active</th>
|
||||
<th class="dt-no-sorting sorting" tabindex="8" aria-controls="style-3"
|
||||
@@ -68,6 +70,7 @@
|
||||
<td>{{data_obj.end_date}}</td>
|
||||
<td>{{data_obj.from_time}}</td>
|
||||
<td>{{data_obj.to_time}}</td>
|
||||
<td>{{data_obj.created_by}}</td>
|
||||
<td class="text-center">
|
||||
<span
|
||||
class="shadow-none badge {% if data_obj.active %}badge-primary{% else %}badge-danger{% endif %}">{{data_obj.active}}</span>
|
||||
@@ -87,7 +90,7 @@
|
||||
d="M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z">
|
||||
</path>
|
||||
</svg></a></li>
|
||||
<li><a href="{% url 'manage_events:event_category_delete' data_obj.id %}"
|
||||
<li><a href="{% url 'manage_events:event_delete' data_obj.id %}"
|
||||
class="bs-tooltip" data-bs-toggle="tooltip"
|
||||
data-bs-placement="top" title=""
|
||||
data-original-title="Delete" data-bs-original-title="Delete"
|
||||
|
||||
Reference in New Issue
Block a user