
This simplifies date-related filters - humanize_ts in this commit, date_filter in the next commit. --- app.py | 5 +---- coffee_db.py | 14 +++++++++++--- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/app.py b/app.py index ee95747..1a3c79f 100644 --- a/app.py +++ b/app.py @@ -36,10 +36,7 @@ def humanize_ts(time, max_interval="years"): """ if jinja2.is_undefined(time): return time - now = datetime.now(timezone.utc) - if time[-1] == 'Z': # Convert Zulu time zone to datetime compatible format - time = time[0:-1] + '+00:00' - diff = now - datetime.fromisoformat(time) + diff = datetime.now(timezone.utc) - time second_diff = diff.seconds day_diff = diff.days diff --git a/coffee_db.py b/coffee_db.py index 7fddd8e..810ed8e 100644 --- a/coffee_db.py +++ b/coffee_db.py @@ -1,5 +1,6 @@ import sqlite3 import os +from datetime import datetime dbdir = os.path.dirname(__file__) dbdef = os.path.join(dbdir, "coffee_db.sql") @@ -219,14 +220,21 @@ def drink_count(uid=None, start=None, stop=None): + " and ".join(clauses) + " group by fl.type " "order by fl.ord asc", args)) +def sqlite_timestring_to_datetime(timestring): + if timestring[-1] == 'Z': # Convert Zulu time zone to datetime compatible format + timestring = timestring[0:-1] + '+00:00' + return datetime.fromisoformat(timestring) def last_events(): """Return mapping with event names as keys and SQLite time string of the last event as values. """ conn, c = open_db() - res = dict(c.execute("""select name, MAX(time) - from events as e left join event_types as et on e.event_type = et.id - group by name""")) + res = {} + for name, time in c.execute("""select name, MAX(time) + from events as e left join event_types as et on e.event_type = et.id + group by name"""): + res[name] = sqlite_timestring_to_datetime(time) + close_db(conn) return res -- 2.28.0.rc2