From 352f02e9f431c49052ab2d9f4876b902b3d4eb05 Mon Sep 17 00:00:00 2001 From: matiasonnelainen Date: Sat, 29 Jan 2022 01:41:11 +0200 Subject: [PATCH] Added a page to view submitted games --- .app.py.swp | Bin 0 -> 1024 bytes .schema.sql.swp | Bin 0 -> 1024 bytes __pycache__/app.cpython-38.pyc | Bin 3578 -> 4177 bytes app.py | 28 +++++++++++++++++++--------- schema.sql | 2 +- templates/.mainpage.html.swp | Bin 0 -> 1024 bytes templates/game.html | 1 + templates/mainpage.html | 10 +++++----- 8 files changed, 26 insertions(+), 15 deletions(-) create mode 100644 .app.py.swp create mode 100644 .schema.sql.swp create mode 100644 templates/.mainpage.html.swp diff --git a/.app.py.swp b/.app.py.swp new file mode 100644 index 0000000000000000000000000000000000000000..8904bbab8a1e6fb361b6af109ece0f09d34b72c1 GIT binary patch literal 1024 zcmYc?$V<%2S1{4DU_b#AMHm=z6H77^i}UkPB(QLDDhzbfN-Hvr49u{|B7_nP3iJvp T5&TisXb6mk09`{M6x}ue7-~1ETn8aFWi@1m_NgEq$J=Ipkc1sIwLX)U89@5~1c1v3AY%ID= zDB@K?m}?IS2p&c7B6#quUcBa_Kfsd+f+yeXZepdo%$s@N``&vy@7q6PU#-OLcpOXc zyl21a-&1cBZ?r@lTpiXTEO(86);^*Y{#>80kQ9?0)RmFcQg`J}grvKujT!D}U5Th8 zQaeV@w#^{MOcrA@Gsw`fGRTN_CCJ6(+%r^`h*Xxc!~BPSGkLFUui1+gYrDSJs5vCZ zUm7-lY^0Jqrvtx}v!}sJDR1L6I?lgEuV>a)3uU`hu~rL}qTj)_GJYdcZ#8n(!)E)8d=>B362O2ylkiQJjCm3&S~>ebsOenl%yYslw7JZp0?gHJ*=69i@>8 zuZo5dMl=s>FOe6d{JgW@nsdmF`v}1PBjnUz`I2tIp(X92j!Y1dnIt4_qYzOBh|Ew& z=}K)SjHo2SlwH+lt4B=rgApeCyVi;jjcH6_5u(3PL0O~VWx}CN1~VJXi+l2_sUe3MQ-5E3j2{NUDJxRYTOPxyuJlIwJyFP>4>7 z3{jsZ2Ifp3y8{PT;F6q1X=I=wSO%ig{7dW|y2_uLqv$d}HZQ>WgE=;~CHP67kC7o` e(Aa=HPn>%d}c~jJcgp(>{@U!6^<$oI46NIe)0z{vB~`08j~Hll^B^O z=W_cpa!uaNZOf=NnU6<}QD?F#kG6maBNtpeEc}2P)LVxmaet&jJ KK1MEP0Y(7JcvYPM diff --git a/app.py b/app.py index 14d9d6a..e059473 100644 --- a/app.py +++ b/app.py @@ -60,28 +60,38 @@ def mainpage(): username = session["username"] user = db.session.execute("SELECT id FROM users WHERE username=:username", {"username": username}) user_id = user.fetchone()[0] - averages = db.session.execute("SELECT average_date, average FROM averages WHERE user_id=:user_id ORDER BY id DESC", {"user_id": user_id}) - topavgs = db.session.execute("SELECT average_date, average FROM averages WHERE user_id=:user_id ORDER BY average DESC LIMIT 5", {"user_id": user_id}) + averages = db.session.execute("SELECT game_id, average_date, average FROM averages WHERE user_id=:user_id ORDER BY id DESC", {"user_id": user_id}) + topavgs = db.session.execute("SELECT game_id, average_date, average FROM averages WHERE user_id=:user_id ORDER BY average DESC LIMIT 5", {"user_id": user_id}) total_avg = db.session.execute("SELECT AVG(average)::numeric(3,1) FROM averages WHERE user_id=:user_id AND average_date > NOW() - INTERVAL '30 days'", {"user_id": user_id}) total = total_avg.fetchone()[0] return render_template("mainpage.html", avgs=averages, total=total, topavgs=topavgs) else: - averages = db.session.execute("SELECT average_date, average FROM averages") - top_averages = db.session.execute("SELECT average_date, average FROM averages ORDER BY average DESC LIMIT 5") + averages = db.session.execute("SELECT game_id, average_date, average FROM averages") + top_averages = db.session.execute("SELECT game_id, average_date, average FROM averages ORDER BY average DESC LIMIT 5") return render_template("mainpage.html", avgs=averages, topavgs=top_averages) if request.method == "POST": average = request.form["addaverage"] username = session["username"] user = db.session.execute("SELECT id FROM users WHERE username=:username", {"username": username}) user_id = user.fetchone()[0] - sql = "INSERT INTO averages (average_date, user_id, average) VALUES (current_date, :user_id, :average)" - db.session.execute(sql, {"user_id": user_id, "average": average}) + sql_game = "INSERT INTO games (game_date, player_one) VALUES (current_date, :player_one)" + db.session.execute(sql_game, {"player_one": user_id}) + game = db.session.execute("SELECT id FROM games ORDER BY id DESC") + game_id = game.fetchone()[0] + sql = "INSERT INTO averages (game_id, average_date, user_id, average) VALUES (:game_id, current_date, :user_id, :average)" + db.session.execute(sql, {"game_id": game_id, "user_id": user_id, "average": average}) db.session.commit() return redirect("/") -@app.route("/game", methods = ["GET"]) -def game(): - return render_template("game.html") +@app.route("/game/", methods = ["GET"]) +def game(id): + avg_sql = db.session.execute("SELECT * FROM averages WHERE game_id=:id", {"id": id}) + game_sql = db.session.execute("SELECT * FROM games WHERE id=:id", {"id": id}) + avg = avg_sql.fetchone() + player = db.session.execute("SELECT username FROM users WHERE id=:user_id", {"user_id": avg.user_id}) + player_one = player.fetchone() + game = game_sql.fetchone() + return render_template("game.html", game=game, avg=avg, player1=player_one) @app.route("/newgame", methods = ["GET", "POST"]) def newgame(): diff --git a/schema.sql b/schema.sql index 5ac3981..6592dcd 100644 --- a/schema.sql +++ b/schema.sql @@ -1,4 +1,4 @@ CREATE TABLE users (id SERIAL PRIMARY KEY, username TEXT UNIQUE, password TEXT); CREATE TABLE settings (id SERIAL PRIMARY KEY, user_id INTEGER REFERENCES users, name TEXT, language TEXT); -CREATE TABLE averages (id SERIAL PRIMARY KEY, average_date DATE, user_id INTEGER REFERENCES users, average REAL); +CREATE TABLE averages (id SERIAL PRIMARY KEY, game_id INTEGER REFERENCES games, average_date DATE, user_id INTEGER REFERENCES users, average REAL); CREATE TABLE games (id SERIAL PRIMARY KEY, game_date DATE, player_one INTEGER REFERENCES users, player_two INTEGER REFERENCES users, result INTEGER); diff --git a/templates/.mainpage.html.swp b/templates/.mainpage.html.swp new file mode 100644 index 0000000000000000000000000000000000000000..2d177a5ebce2a5d43d269704fb6c1104979c3437 GIT binary patch literal 1024 zcmYc?$V<%2S1{4DU_b%;6&M(D6H77^i}UkPB(QLDDhzbfN-Hvr49u{|B7|}iGxG`( a(^K^_N^)}$!lSIw5Eu;s`h-9zx-|gkP!K}^ literal 0 HcmV?d00001 diff --git a/templates/game.html b/templates/game.html index 428e46b..323ec1c 100644 --- a/templates/game.html +++ b/templates/game.html @@ -1,4 +1,5 @@ Darts scores

Game

+

{{ player1.username }} {{ avg.average }}

Back to main page diff --git a/templates/mainpage.html b/templates/mainpage.html index 1599b2e..ba9ba45 100644 --- a/templates/mainpage.html +++ b/templates/mainpage.html @@ -1,5 +1,5 @@ {% if session.username %} -

You are logged in as {{ session.username }}Log out

+

You are logged in as {{ session.username }} Log out

Add an average:
@@ -8,20 +8,20 @@

Your total average past 30 days: {{ total }}

Your top 5 averages:

{%for avg in topavgs %} -

{{ avg.average_date }} {{ avg.average }} view

+

Date: {{ avg.average_date }} Average: {{ avg.average }} - view

{% endfor %}

Your averages:

{% for avg in avgs %} -

{{ avg.average_date }} {{ avg.average }} view

+

Date: {{ avg.average_date }} Average: {{ avg.average }} - view

{% endfor %} {% else %} Log in

Top 5 averages:

{% for avg in topavgs %} -

{{ avg.average_date }} {{ avg.average }} view

+

Date: {{ avg.average_date }} Average: {{ avg.average }} - view

{% endfor %}

All averages:

{% for avg in avgs %} -

{{ avg.average_date }} {{ avg.average }} view

+

Date: {{ avg.average_date }} Average: {{ avg.average }} - view

{% endfor %} {% endif %}