use session to memorize places/competition

This commit is contained in:
yann 2025-06-23 12:44:59 +02:00
parent 5102e366e8
commit e6d4d05917
4 changed files with 26 additions and 14 deletions

BIN
.DS_Store vendored

Binary file not shown.

View File

@ -7,7 +7,7 @@
{ {
"name":"Iron Temple", "name":"Iron Temple",
"email": "admin@irontemple.com", "email": "admin@irontemple.com",
"points":"4" "points":"47"
}, },
{ "name":"She Lifts", { "name":"She Lifts",
"email": "kate@shelifts.co.uk", "email": "kate@shelifts.co.uk",

View File

@ -1,5 +1,5 @@
import json 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(): def loadClubs():
@ -48,23 +48,35 @@ def purchasePlaces():
competition = [c for c in competitions if c['name'] == request.form['competition']][0] 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] club = [c for c in clubs if c['name'] == request.form['club']][0]
placesRequired = int(request.form['places']) placesRequired = int(request.form['places'])
points = int(club['points']) if competition['name'] in session:
if placesRequired <= points: places = {competition['name']: session[competition['name']] + placesRequired}
competition['numberOfPlaces'] = int(competition['numberOfPlaces']) - placesRequired
club['points'] = int(club['points']) - placesRequired
if competition['numberOfPlaces'] < 0:
competition['numberOfPlaces'] = 0
flash('Great-booking complete!')
else: 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, return render_template('welcome.html', club=club,
competitions=competitions) competitions=competitions)
# TODO: Add route for points display # TODO: Add route for points display
@app.route('/logout') @app.route('/logout')
def logout(): def logout():
return redirect(url_for('index')) return redirect(url_for('index'))
if (__name__ == "__main__"):
app.run(debug=True)

View File

@ -10,10 +10,10 @@
{% with messages = get_flashed_messages()%} {% with messages = get_flashed_messages()%}
{% if messages %} {% if messages %}
<ul> <ul>
{% for message in messages %} {% for message in messages %}
<li>{{message}}</li> <li>{{message}}</li>
{% endfor %} {% endfor %}
</ul> </ul>
{% endif%} {% endif%}
Points available: {{club['points']}} Points available: {{club['points']}}
<h3>Competitions:</h3> <h3>Competitions:</h3>