ui tweaks, admin form

This commit is contained in:
Jakub Senderák
2020-04-22 14:16:49 +02:00
parent d657dedf5f
commit d12f5c093c
6 changed files with 238 additions and 124 deletions
+33 -10
View File
@@ -2,14 +2,16 @@ from api import app
from bridzik import Bridzik, Card, Card_colors, Card_values, BridzikException
import json
from flask import render_template, url_for, flash, redirect
from api.forms import GuessForm, PlayForm
from api.forms import GuessForm, PlayForm, AdminForm
b = Bridzik()
b.add_player_guess(0, 1)
b.add_player_guess(1, 1)
b.add_player_guess(2, 1)
b.add_player_guess(3, 2)
# b.play_card(3, b.get_status(3)['player_cards'][0])
players = [
'Jakub',
'Timo',
'Katka',
'Ondrej'
]
@app.route('/bridzik_api/get_status/<id>')
def get_status(id: int):
@@ -19,16 +21,20 @@ def get_status(id: int):
def status(player):
player = int(player)
game_status = b.get_status(player)
action = None
form = None
player_cards = Card.sort_card_list(b.series[-1].get_last_round().player_cards[player])
game_status['player_cards'] = [str(c) for c in player_cards]
if b.is_completed() or b.series[-1].get_last_round().get_active_player() != player:
return render_template('status.html', status=game_status)
pass
elif not b.series[-1].get_last_round().is_guessing_completed():
form = GuessForm(max_guess= 8 - b.series[-1].get_last_round().round_number)
return render_template('status.html', status=game_status, player=player, action='guess', form=form)
action = 'guess'
else:
player_cards = b.series[-1].get_last_round().player_cards[player]
form = PlayForm()
form.card.choices = [(str(c), str(c)) for c in player_cards]
return render_template('status.html', status=game_status, player=player, action='play', form=form)
action = 'play'
return render_template('status.html', status=game_status, player=player, action=action, form=form, players=players)
@app.route('/bridzik/<player>/guess', methods=['POST'])
def guess(player):
@@ -57,3 +63,20 @@ def play_card(player):
except BridzikException:
flash('Nie je možné zahrať kartu.')
return redirect(url_for('status', player=player))
@app.route('/bridzik/admin', methods=['GET', 'POST'])
def admin():
form = AdminForm()
if form.validate_on_submit():
players[0] = form.player0.data
players[1] = form.player1.data
players[2] = form.player2.data
players[3] = form.player3.data
return redirect(url_for('admin'))
else:
form.player0.data = players[0]
form.player1.data = players[1]
form.player2.data = players[2]
form.player3.data = players[3]
return render_template('admin.html', form=form)