feat: add landing page, Improved key rating page UI

This commit is contained in:
serversdwn
2026-03-08 21:17:50 +00:00
parent 4893f3deee
commit 289c45e233
7 changed files with 490 additions and 28 deletions

41
app.py
View File

@@ -69,20 +69,17 @@ _migrate_key_ids_and_maps()
@app.route("/")
def index():
def landing():
return render_template("landing.html")
def _keys_context():
conn = get_db()
maps = conn.execute("""
SELECT id, name
FROM maps
ORDER BY name
""").fetchall()
maps = conn.execute("SELECT id, name FROM maps ORDER BY name").fetchall()
map_filter = request.args.get("map_id", type=int)
sort = request.args.get("sort", "priority_desc")
show = request.args.get("show", "all")
key_map_rows = conn.execute("""
SELECT key_id, map_id
FROM key_maps
""").fetchall()
key_map_rows = conn.execute("SELECT key_id, map_id FROM key_maps").fetchall()
key_maps = {}
for row in key_map_rows:
key_maps.setdefault(row["key_id"], set()).add(row["map_id"])
@@ -107,9 +104,7 @@ def index():
AND kmf.map_id = ?
"""
params.append(map_filter)
key_query += """
LEFT JOIN key_ratings r ON k.id = r.key_id
"""
key_query += " LEFT JOIN key_ratings r ON k.id = r.key_id "
if show == "rated":
key_query += " WHERE r.priority IS NOT NULL "
elif show == "unrated":
@@ -131,15 +126,13 @@ def index():
conn.close()
key_maps = {k: sorted(v) for k, v in key_maps.items()}
return render_template(
"index.html",
keys=keys,
maps=maps,
key_maps=key_maps,
map_filter=map_filter,
sort=sort,
show=show,
)
return dict(keys=keys, maps=maps, key_maps=key_maps,
map_filter=map_filter, sort=sort, show=show)
@app.route("/keys")
def keys_page():
return render_template("keys.html", **_keys_context())
@app.route("/rate", methods=["POST"])
@@ -186,7 +179,7 @@ def rate_key():
redirect_args["sort"] = sort
if show:
redirect_args["show"] = show
base_url = url_for("index", **redirect_args)
base_url = url_for("keys_page", **redirect_args)
return redirect(f"{base_url}#key-{key_id}")
@@ -245,7 +238,7 @@ def rate_all():
redirect_args["sort"] = sort
if show:
redirect_args["show"] = show
base_url = url_for("index", **redirect_args)
base_url = url_for("keys_page", **redirect_args)
if save_one:
return redirect(f"{base_url}#key-{save_one}")
return redirect(base_url)