From e6d4d059172f6ba08f0cf63cca8f3ac57ca9404c Mon Sep 17 00:00:00 2001 From: yann Date: Mon, 23 Jun 2025 12:44:59 +0200 Subject: [PATCH] use session to memorize places/competition --- .DS_Store | Bin 6148 -> 0 bytes clubs.json | 2 +- server.py | 34 +++++++++++++++++++++++----------- templates/welcome.html | 4 ++-- 4 files changed, 26 insertions(+), 14 deletions(-) delete mode 100644 .DS_Store diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index 04a508e6f6048834346c5f1769770f2ff01806e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHLyGjE=6uo02t_eaKAz-uO517KrW(_MA7J@PZnPF^o|@7E?}H@}hH>zFF|IYk+&(>@&}^;MVR8B@>u%kBB|j?|;;!fwo; zo=xxx7mLyiv%#By`qZRWl9&8+hRJ`mar)?NOa7sCOdaF15_(t-pML;FbyJ6!KU;}s zO#X0l^^;%MnY`&)lTU29%r{F%c%p~6LIPYLe0*qf<4f<4&N6je-xM$B)O9gpJyX-< zOj94xGV7aGn$QpFT6jp#ntB%7gTb4+E{u9p$LNeCe~tP7YGBXiaPkUmZym4>SO>lw z;OB#j#^`B`6v{^jI{69!%wkvuj^!Q=ba?>iX^a$N1R+!@P?ZY(iXl`v#$BD~X^a%A zauSjm>u6@7-%x~P$G9ugNq7ovZym4>Bpt}8j|JZU*T=vACyVSS>wtCOUpXMMe#I~2 zl=R-3Iyv5JU9=h+2j@i!WeGaH9m@mWiur#98JKhV0O)Cq6k-Hne+Wn$Y-b(#Q3pN% DK3B}k diff --git a/clubs.json b/clubs.json index 1d7ad1f..46bed31 100644 --- a/clubs.json +++ b/clubs.json @@ -7,7 +7,7 @@ { "name":"Iron Temple", "email": "admin@irontemple.com", - "points":"4" + "points":"47" }, { "name":"She Lifts", "email": "kate@shelifts.co.uk", diff --git a/server.py b/server.py index 0a12660..1818b65 100644 --- a/server.py +++ b/server.py @@ -1,5 +1,5 @@ import json -from flask import Flask,render_template,request,redirect,flash,url_for +from flask import Flask,render_template,request,redirect,flash,url_for,session def loadClubs(): @@ -48,23 +48,35 @@ def purchasePlaces(): competition = [c for c in competitions if c['name'] == request.form['competition']][0] club = [c for c in clubs if c['name'] == request.form['club']][0] placesRequired = int(request.form['places']) - points = int(club['points']) - if placesRequired <= points: - competition['numberOfPlaces'] = int(competition['numberOfPlaces']) - placesRequired - club['points'] = int(club['points']) - placesRequired - if competition['numberOfPlaces'] < 0: - competition['numberOfPlaces'] = 0 - flash('Great-booking complete!') + if competition['name'] in session: + places = {competition['name']: session[competition['name']] + placesRequired} else: - flash("You don't have enough points") + places = {competition['name']: placesRequired} + points = int(club['points']) + print("booked", places) + if placesRequired <= 12: + if places[competition['name']] <= 12: + if placesRequired <= points: + competition['numberOfPlaces'] = int(competition['numberOfPlaces']) - placesRequired + club['points'] = int(club['points']) - placesRequired + if not competition['name'] in session: + session[competition['name']] = placesRequired + flash('Great-booking complete!') + else: + flash("You don't have enough points") + else: + flash(f"You already booked 12 places for {competition['name']}") + else: + flash("You can't book more than 12 places") return render_template('welcome.html', club=club, competitions=competitions) - - # TODO: Add route for points display @app.route('/logout') def logout(): return redirect(url_for('index')) + +if (__name__ == "__main__"): + app.run(debug=True) diff --git a/templates/welcome.html b/templates/welcome.html index ff6b261..223f4b2 100644 --- a/templates/welcome.html +++ b/templates/welcome.html @@ -10,10 +10,10 @@ {% with messages = get_flashed_messages()%} {% if messages %} + {% endif%} Points available: {{club['points']}}

Competitions: