diff --git a/app.py b/app.py index baf24ea..a376737 100644 --- a/app.py +++ b/app.py @@ -123,11 +123,29 @@ def _keys_context(): key_query += f" ORDER BY {order_by} " keys = conn.execute(key_query, params).fetchall() - conn.close() key_maps = {k: sorted(v) for k, v in key_maps.items()} + + # Build info view data: all keys (unfiltered), grouped by map then unassigned. + all_keys = conn.execute(""" + SELECT k.id, k.name, k.grid_image_url, k.wiki_url, + r.priority, r.reason, COALESCE(r.used_in_quest, 0) AS used_in_quest + FROM keys k + LEFT JOIN key_ratings r ON k.id = r.key_id + ORDER BY k.name ASC + """).fetchall() + conn.close() + + # keys_by_map: list of (map_row, [key_row, ...]) sorted by map name + keys_by_map = [] + for m in sorted(maps, key=lambda r: r["name"]): + bucket = [k for k in all_keys if m["id"] in key_maps.get(k["id"], [])] + keys_by_map.append((m, bucket)) + unassigned_keys = [k for k in all_keys if not key_maps.get(k["id"])] + return dict(keys=keys, maps=maps, key_maps=key_maps, - map_filter=map_filter, sort=sort, show=show) + map_filter=map_filter, sort=sort, show=show, + keys_by_map=keys_by_map, unassigned_keys=unassigned_keys) @app.route("/keys") @@ -183,6 +201,23 @@ def rate_key(): return redirect(f"{base_url}#key-{key_id}") +@app.route("/rate_json", methods=["POST"]) +def rate_json(): + data = request.get_json(force=True) + key_id = data.get("key_id") + if not key_id: + return jsonify({"ok": False, "error": "missing key_id"}), 400 + priority = data.get("priority") # None or int + reason = data.get("reason", "") + used_in_quest = 1 if data.get("used_in_quest") else 0 + map_ids = [int(m) for m in data.get("map_ids", [])] + conn = get_db() + _update_key(conn, key_id, priority, reason, used_in_quest, map_ids) + conn.commit() + conn.close() + return jsonify({"ok": True}) + + def _update_key(conn, key_id, priority, reason, used_in_quest, map_ids): conn.execute(""" INSERT INTO key_ratings (key_id, priority, reason, used_in_quest) diff --git a/tarkov.db b/tarkov.db index 9a02721..8f5f6cc 100644 Binary files a/tarkov.db and b/tarkov.db differ diff --git a/templates/keys.html b/templates/keys.html index 6e429f4..cece58d 100644 --- a/templates/keys.html +++ b/templates/keys.html @@ -1,7 +1,7 @@
-