diff --git a/library/page.py b/library/page.py index 5a47f15..630d4fd 100644 --- a/library/page.py +++ b/library/page.py @@ -2,8 +2,11 @@ import flask +from requests import get +from icalendar import Calendar +import datetime from flask import render_template -from rnrfeed.rnrfeeder import getevents +from rnrfeed.rnrfeeder import getevents, getlatestevent from csvparser.csvparser import ( getlicenses, getpublications, @@ -47,6 +50,32 @@ def pastevents(): return render_template("pastevents.html", events=events) +@APP.route("/upcoming") +def latestevent(): + """show upcoming or latest event and book recommendations""" + event = getlatestevent() + return render_template("upcomingevent.html", event=event) + + +@APP.context_processor +def upcoming_or_latest(): + upcoming = True + ics = get("https://varia.zone/events.ics").text + gcal = Calendar.from_ical(ics) + eventtimes = [ + c.get("dtstart").dt for c in gcal.walk() + if c.name == "VEVENT" + and "Read & Repair" in c.get("summary") + ] + now = datetime.datetime.now() + eventtimes.sort() + eventtimes.reverse() + if now > eventtimes[0]: + upcoming = False + + return dict(upcoming=upcoming) + + if __name__ == "__main__": APP.debug = True APP.run(port=5000) diff --git a/library/rnrfeed/rnrfeeder.py b/library/rnrfeed/rnrfeeder.py index bee04bd..c393281 100644 --- a/library/rnrfeed/rnrfeeder.py +++ b/library/rnrfeed/rnrfeeder.py @@ -15,6 +15,12 @@ def getentries(): return entries +def getlatestevent(): + for entry in feed.entries: + if "readrepair" in entry.category: + return entry + + def gettitles(): titles = [] for entry in feed.entries: diff --git a/library/static/css/style.css b/library/static/css/style.css index 734a88d..57b36df 100644 --- a/library/static/css/style.css +++ b/library/static/css/style.css @@ -75,6 +75,16 @@ body:after { margin-top: 3em; } +#latestevent { + text-align: center; + color: #DD4F77; +} + +#upcomingevent { + text-align: center; + color: #404d81; +} + .event { margin: 0 1em 1em; max-width: 90%; diff --git a/library/static/svg/bookmark-latest.svg b/library/static/svg/bookmark-latest.svg index b75f396..9a12d56 100644 --- a/library/static/svg/bookmark-latest.svg +++ b/library/static/svg/bookmark-latest.svg @@ -74,7 +74,7 @@ id="tspan21" x="98.764069" y="245.41867" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:42.6667px;font-family:Carlito;-inkscape-font-specification:Carlito;text-align:center;text-anchor:middle;fill:#ffffff">UpcomingLatest - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/library/templates/base.html b/library/templates/base.html index 04fa801..95e5735 100644 --- a/library/templates/base.html +++ b/library/templates/base.html @@ -18,7 +18,11 @@

VARIA LIBRARY COLLECTION

- + {% if upcoming %} + + {% else %} + + {% endif %} {% block main %} {% endblock main %} diff --git a/library/templates/pastevents.html b/library/templates/pastevents.html index c45452d..038f1f2 100644 --- a/library/templates/pastevents.html +++ b/library/templates/pastevents.html @@ -9,7 +9,7 @@

{{ eventtitle }}

{{ text[0]|safe }}
-

For those interested in this read and repair event the physical library at varia offers the following books.

+

For those interested in this read and repair event the physical library at varia offers the following books: