changes in event details, event list and event filter api

This commit is contained in:
rizwanisready
2024-04-16 14:57:19 +05:30
parent 93667a4dc7
commit f55d50771d
5 changed files with 42 additions and 19 deletions

View File

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

View File

@@ -38,6 +38,8 @@ class EventForm(forms.ModelForm):
"age_group",
"tags",
"draft",
"active",
"deleted",
]
widgets = {
"title": forms.TextInput(attrs={"class": "form-control"}),

View File

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

View File

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

View File

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