def _sort_events(events):
now = datetime.now(timezone.utc)
# Only show events with valid timestamps
- events = [e for e in events if e.startdate and e.enddate]
- ongoing_events = [e for e in events if e.startdate <= now and e.enddate >= now]
- upcoming_events = [e for e in events if e.startdate > now]
- past_events = [e for e in events if e.enddate < now]
- return ongoing_events, upcoming_events, past_events
+ timed_events = [e for e in events if e.startdate and e.enddate]
+ ongoing_events = [e for e in timed_events if e.startdate <= now and e.enddate >= now]
+ upcoming_events = [e for e in timed_events if e.startdate > now]
+ past_events = [e for e in timed_events if e.enddate < now]
+ other_events = [e for e in events if e not in timed_events]
+ return ongoing_events, upcoming_events, past_events, other_events
@bp.get("")
def jams():
all_events.extend(j.events)
# Only show events with valid timestamps
- all_events = [e for e in all_events if e.startdate and e.enddate]
-
- ongoing_events, upcoming_events, past_events = _sort_events(all_events)
+ ongoing_events, upcoming_events, past_events, _ = _sort_events(all_events)
past_events = past_events[-5:] # Only show 5 most recent events
# TODO: Sort into groups based on start/end dates
@bp.get("/<int:jamid>")
def jam(jamid):
jam = _get_jam_by_id(jamid)
- ongoing_events, upcoming_events, past_events = _sort_events(jam.events)
+ ongoing_events, upcoming_events, past_events, other_events = _sort_events(jam.events)
# Show the main jam page
return render_template(
"jam.html",
jam=jam,
ongoing=ongoing_events,
- upcoming=upcoming_events,
+ upcoming=upcoming_events+other_events, # Show events without timestamps as upcoming
past=past_events)
<h1>Jams</h1>
+<h2>Events</h2>
{% from "jam-event-list.html" import jam_event_list %}
{{ jam_event_list("Ongoing Events", ongoing) }}
{{ jam_event_list("Upcoming Events", upcoming) }}
{{ jam_event_list("Recent Events", past) }}
<h2>All Jams</h2>
-<div class="jam-list">
- {% for jam in jams %}
- <div class="jam-list-entry">
- <span class="jam-list-title">
- {{ jam.title }}
- </span>
- <span class="jam-list-owner">
- Hosted by <a href="/users/{{ jam.username }}" class="profile-link">{{ jam.username }}</a>
- </span>
- </div>
- {% endfor %}
-</div>
+<ul class="jam-list">
+ {% for jam in jams -%}
+ <li><a href="/jams/{{ jam.jamid }}">{{ jam.title }}</a></li>
+ {%- endfor %}
+</ul>
{% endblock %}