diff --git a/templates/index.html b/templates/event_list.html similarity index 67% rename from templates/index.html rename to templates/event_list.html index bed0a9f..f51b5d1 100644 --- a/templates/index.html +++ b/templates/event_list.html @@ -9,67 +9,6 @@ - - - {% set event_labels = { @@ -140,8 +79,6 @@

{{ market }}

{% endfor %} -
-

Agenda

@@ -151,7 +88,7 @@ | Hide all
- {% for event in events if event.as_date >= two_weeks_ago %} + {% for event in events if start_event_list <= event.as_date <= end_event_list %} {% if loop.first or event.date.year != loop.previtem.date.year or event.date.month != loop.previtem.date.month %}
diff --git a/templates/navbar.html b/templates/navbar.html index 6ac7333..52f2a3d 100644 --- a/templates/navbar.html +++ b/templates/navbar.html @@ -2,6 +2,8 @@ {% set pages = [ {"endpoint": "index", "label": "Home" }, + {"endpoint": "recent", "label": "Recent" }, + {"endpoint": "calendar_page", "label": "Calendar" }, {"endpoint": "trip_future_list", "label": "Future trips" }, {"endpoint": "trip_past_list", "label": "Past trips" }, {"endpoint": "conference_list", "label": "Conferences" }, diff --git a/web_view.py b/web_view.py index d2f8a2b..ca643c4 100755 --- a/web_view.py +++ b/web_view.py @@ -81,10 +81,60 @@ async def index() -> str: agenda.data.hide_markets_while_away(events, data["accommodation_events"]) return flask.render_template( - "index.html", + "event_list.html", today=now.date(), events=events, fullcalendar_events=calendar.build_events(events), + start_event_list=date.today() - timedelta(days=1), + end_event_list=date.today() + timedelta(days=365 * 2), + **data, + ) + + +@app.route("/calendar") +async def calendar_page() -> str: + """Index page.""" + now = datetime.now() + data = await agenda.data.get_data(now, app.config) + + events = data.pop("events") + + markets_arg = flask.request.args.get("markets") + if markets_arg == "hide": + events = [e for e in events if e.name != "market"] + if markets_arg != "show": + agenda.data.hide_markets_while_away(events, data["accommodation_events"]) + + return flask.render_template( + "calendar.html", + today=now.date(), + events=events, + fullcalendar_events=calendar.build_events(events), + **data, + ) + + +@app.route("/recent") +async def recent() -> str: + """Index page.""" + now = datetime.now() + data = await agenda.data.get_data(now, app.config) + + events = data.pop("events") + + markets_arg = flask.request.args.get("markets") + if markets_arg == "hide": + events = [e for e in events if e.name != "market"] + if markets_arg != "show": + agenda.data.hide_markets_while_away(events, data["accommodation_events"]) + + return flask.render_template( + "event_list.html", + today=now.date(), + events=events, + fullcalendar_events=calendar.build_events(events), + start_event_list=date.today() - timedelta(days=14), + end_event_list=date.today(), **data, )