feat: add landing page, Improved key rating page UI
This commit is contained in:
41
app.py
41
app.py
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user