From ae351c9685ee8491d471e9ad3bc907ac6d999ae5 Mon Sep 17 00:00:00 2001 From: clerie Date: Sat, 17 Feb 2024 18:10:46 +0100 Subject: [PATCH] Add index of events by year --- assets/style.css | 4 ++++ chaosevents.py | 29 ++++++++++++++++++++++++++--- templates/index.html | 8 +++++++- 3 files changed, 37 insertions(+), 4 deletions(-) diff --git a/assets/style.css b/assets/style.css index 4ccacb2..d9a333c 100644 --- a/assets/style.css +++ b/assets/style.css @@ -38,6 +38,10 @@ section .description { list-style-position: inside; } +section.years-index { + text-align: center; +} + footer { text-align: center; } diff --git a/chaosevents.py b/chaosevents.py index 9f62c42..6005494 100755 --- a/chaosevents.py +++ b/chaosevents.py @@ -53,20 +53,43 @@ def main(ics_url, out_path): (out_path / "chaosevents.ics").write_text(r.text) - sections = {} + events_by_year = {} + for event in t: + if event.begin.year not in events_by_year: + events_by_year[event.begin.year] = [] + events_by_year[event.begin.year].append(event) + + years_index = sorted(events_by_year.keys()) + + # Index page + + sections = {} if any(t.now()): sections["Current"] = t.now() - sections["Upcoming"] = t.start_after(arrow.utcnow()) - (out_path / "index.html").write_text( env.get_template("index.html").render( sections=sections, + years_index=years_index, ) ) + # Year pages + + for year, year_events in events_by_year.items(): + year_directory = out_path / "year" / str(year) + year_directory.mkdir(exist_ok=True, parents=True) + + (year_directory / "index.html").write_text( + env.get_template("index.html").render( + title=f"Year {year}", + sections={f"Year {year}": year_events}, + years_index=years_index, + ) + ) + def cli(): ics_url = "https://cloud.fem.tu-ilmenau.de/remote.php/dav/public-calendars/Q58G8xM52HXPc6Jj/?export" diff --git a/templates/index.html b/templates/index.html index 5e0a3ee..ed98723 100644 --- a/templates/index.html +++ b/templates/index.html @@ -2,7 +2,7 @@ - Upcoming Chaos Events + {% if title %}{{ title }} | {% endif %}Upcoming Chaos Events @@ -26,6 +26,12 @@ {% endfor %} {% endfor %} +
+ Upcoming + {% for year in years_index %} + | {{ year }} + {% endfor %} +