feat: add initial ammo chart, update dbs, and update docs.
This commit is contained in:
@@ -1102,5 +1102,40 @@ def barters():
|
||||
return render_template("barters.html", barters=barter_list)
|
||||
|
||||
|
||||
@app.route("/ammo")
|
||||
def ammo():
|
||||
caliber_filter = request.args.get("caliber", "").strip()
|
||||
search = request.args.get("q", "").strip().lower()
|
||||
|
||||
conn = get_db()
|
||||
try:
|
||||
exists = conn.execute(
|
||||
"SELECT name FROM sqlite_master WHERE type='table' AND name='ammo'"
|
||||
).fetchone()
|
||||
if not exists:
|
||||
return render_template("ammo.html", rounds=[], calibers=[], caliber=caliber_filter, q=search)
|
||||
|
||||
calibers = [r["caliber"] for r in conn.execute(
|
||||
"SELECT DISTINCT caliber FROM ammo WHERE caliber IS NOT NULL ORDER BY caliber"
|
||||
).fetchall()]
|
||||
|
||||
query = "SELECT * FROM ammo WHERE 1=1"
|
||||
params = []
|
||||
if caliber_filter:
|
||||
query += " AND caliber = ?"
|
||||
params.append(caliber_filter)
|
||||
if search:
|
||||
query += " AND (LOWER(name) LIKE ? OR LOWER(short_name) LIKE ?)"
|
||||
params.extend([f"%{search}%", f"%{search}%"])
|
||||
query += " ORDER BY caliber, penetration_power DESC"
|
||||
|
||||
rows = conn.execute(query, params).fetchall()
|
||||
rounds = [dict(r) for r in rows]
|
||||
finally:
|
||||
conn.close()
|
||||
|
||||
return render_template("ammo.html", rounds=rounds, calibers=calibers, caliber=caliber_filter, q=search)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
app.run(host="0.0.0.0", port=5000, debug=True)
|
||||
|
||||
Reference in New Issue
Block a user