From 87c661557186a4975fa94977ac1ac1be9bd87d2e Mon Sep 17 00:00:00 2001 From: Frederick Yin Date: Fri, 4 Feb 2022 20:44:07 +0800 Subject: Supply Jinja with full umbrella data sorted by status --- jimbrella/admin.py | 34 +++++++++++++++++++++++++--------- jimbrella/templates/admin/index.html | 19 ++++++++----------- 2 files changed, 33 insertions(+), 20 deletions(-) diff --git a/jimbrella/admin.py b/jimbrella/admin.py index 9cbf4c8..d5df4d4 100644 --- a/jimbrella/admin.py +++ b/jimbrella/admin.py @@ -30,18 +30,34 @@ def check_privilege(): @bp.route("/") def index(): - umbrellas = db.read() - # count # of umbrellas in each status - status_count = { - status: len([u for u in umbrellas if u["status"] == status]) - for status in ("available", "lent", "overdue") + umbrellas = [dict(umb) for umb in db.read()] + # sort umbrellas by their status + statuses = { + "available": [], + "lent": [], + "overdue": [], } + for umb in umbrellas: + if umb["status"] == "available": + statuses["available"].append(umb) + elif umb["status"] in ("lent", "overdue"): + statuses[umb["status"]].append(umb) + try: + lent_at = isoparse(umb["lent_at"]) + umb["lent_at"] = human_datetime(lent_at) + umb["lent_time_ago"] = ( + human_timedelta(datetime.now(tz=CST) - lent_at) + " ago" + ) + except ValueError: + umb["lent_at"] = "Invalid date" + umb["lent_time_ago"] = "" + return render_template( "admin/index.html", - umbrellas=len(umbrellas), - available=status_count["available"], - lent=status_count["lent"], - overdue=status_count["overdue"], + umbrellas=umbrellas, + available=statuses["available"], + lent=statuses["lent"], + overdue=statuses["overdue"], mobile=user_agent(request.user_agent.string).is_mobile, ) diff --git a/jimbrella/templates/admin/index.html b/jimbrella/templates/admin/index.html index 73ae5f6..50b88ae 100644 --- a/jimbrella/templates/admin/index.html +++ b/jimbrella/templates/admin/index.html @@ -15,22 +15,19 @@