Add fields in admin game creation
This commit is contained in:
parent
5b748e9531
commit
2651e77b85
64
belote.py
64
belote.py
@ -323,18 +323,72 @@ def admin_games_new():
|
|||||||
return flask.redirect(URL_DEFAULT)
|
return flask.redirect(URL_DEFAULT)
|
||||||
if flask.request.method=="POST":
|
if flask.request.method=="POST":
|
||||||
name = flask.request.form['name']
|
name = flask.request.form['name']
|
||||||
|
login0 = flask.request.form['player0']
|
||||||
|
login1 = flask.request.form['player1']
|
||||||
|
login2 = flask.request.form['player2']
|
||||||
|
login3 = flask.request.form['player3']
|
||||||
admin = flask.request.form['admin']
|
admin = flask.request.form['admin']
|
||||||
admin = User.query.get(admin)
|
if 'fixplayers' in flask.request.form:
|
||||||
if admin is None:
|
start = True
|
||||||
flask.flash('Login inconnu')
|
else:
|
||||||
|
start = False
|
||||||
|
|
||||||
|
try:
|
||||||
|
admin = int(admin)
|
||||||
|
except:
|
||||||
|
return 'Error'
|
||||||
|
if admin<0 or admin>3:
|
||||||
|
return 'Error'
|
||||||
|
|
||||||
|
adminn = -1
|
||||||
|
lusers = []
|
||||||
|
|
||||||
|
if login0 != '':
|
||||||
|
user0 = User.query.get(login0)
|
||||||
|
if user0 is None:
|
||||||
|
flask.flash('Utilisateur inconnu {}'.format(login0))
|
||||||
|
else:
|
||||||
|
lusers.append(user0)
|
||||||
|
if admin==0: adminn = 0
|
||||||
|
if login1 != '':
|
||||||
|
user1 = User.query.get(login1)
|
||||||
|
if user1 is None:
|
||||||
|
flask.flash('Utilisateur inconnu {}'.format(login1))
|
||||||
|
else:
|
||||||
|
if admin==1: adminn = len(lusers)
|
||||||
|
lusers.append(user1)
|
||||||
|
if login2 != '':
|
||||||
|
user2 = User.query.get(login2)
|
||||||
|
if user2 is None:
|
||||||
|
flask.flash('Utilisateur inconnu {}'.format(login2))
|
||||||
|
else:
|
||||||
|
if admin==2: adminn = len(lusers)
|
||||||
|
lusers.append(user2)
|
||||||
|
if login3 != '':
|
||||||
|
user3 = User.query.get(login3)
|
||||||
|
if user3 is None:
|
||||||
|
flask.flash('Utilisateur inconnu {}'.format(login3))
|
||||||
|
else:
|
||||||
|
if admin==3: adminn = len(lusers)
|
||||||
|
lusers.append(user3)
|
||||||
|
|
||||||
|
if adminn <0:
|
||||||
|
flask.flash('Vous devez définir un maitre du jeu (admin).')
|
||||||
elif len(name)<2:
|
elif len(name)<2:
|
||||||
flask.flash('Nom trop court !')
|
flask.flash('Nom trop court !')
|
||||||
else:
|
else:
|
||||||
game = Game(name=name, admin=admin.login)
|
game = Game(name=name, admin=lusers[adminn].login)
|
||||||
db.session.add(game)
|
db.session.add(game)
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
game.join(admin)
|
ordered_players = []
|
||||||
|
for u in lusers:
|
||||||
|
ordered_players.append(u.login)
|
||||||
|
game.join(u)
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
|
|
||||||
|
if start and game.can_start():
|
||||||
|
game.fix_players()
|
||||||
|
game.start_game(ordered_players)
|
||||||
return flask.redirect('/admin/games')
|
return flask.redirect('/admin/games')
|
||||||
return flask.render_template('admin_game_add.html', user=fll.current_user)
|
return flask.render_template('admin_game_add.html', user=fll.current_user)
|
||||||
|
|
||||||
|
12
db.py
12
db.py
@ -7,7 +7,7 @@ from belote_jeu import cards, N_PLAYERS, colors, winner, N_TURN
|
|||||||
|
|
||||||
db = SQLAlchemy()
|
db = SQLAlchemy()
|
||||||
|
|
||||||
levels_users = {'Inactive':0, 'Simple user':1, 'Can create games':2, 'Can manage simple users': 8, 'Can manage games':9, 'Admin':10}
|
levels_users = {'Inactive':0, 'Simple user':1, 'Can create games':2, 'Can manage games':8, 'Can manage simple users': 9, 'Admin':10}
|
||||||
|
|
||||||
#######################################################################
|
#######################################################################
|
||||||
# User class #
|
# User class #
|
||||||
@ -117,6 +117,10 @@ class Game(db.Model):
|
|||||||
|
|
||||||
def serialize_state_anonymous(self):
|
def serialize_state_anonymous(self):
|
||||||
r = {}
|
r = {}
|
||||||
|
r['players'] = self.get_ordered_players()
|
||||||
|
r['playersinfo'] = {}
|
||||||
|
for p in self.players:
|
||||||
|
r['playersinfo'][p.user] = User.query.get(p.user).name
|
||||||
r['atout'] = self.atout
|
r['atout'] = self.atout
|
||||||
r['preneur'] = self.preneur
|
r['preneur'] = self.preneur
|
||||||
r['last_played'] = self.last_played.split(',') if self.last_played is not None else []
|
r['last_played'] = self.last_played.split(',') if self.last_played is not None else []
|
||||||
@ -126,16 +130,12 @@ class Game(db.Model):
|
|||||||
r['points'] = [self.points_0, self.points_1]
|
r['points'] = [self.points_0, self.points_1]
|
||||||
r['cumul'] = [self.cumul_0, self.cumul_1]
|
r['cumul'] = [self.cumul_0, self.cumul_1]
|
||||||
r['partie'] = self.partie
|
r['partie'] = self.partie
|
||||||
|
r['admin'] = self.admin
|
||||||
return r
|
return r
|
||||||
|
|
||||||
def serialize_state(self, user):
|
def serialize_state(self, user):
|
||||||
r = self.serialize_state_anonymous()
|
r = self.serialize_state_anonymous()
|
||||||
r['players'] = self.get_ordered_players()
|
|
||||||
r['playersinfo'] = {}
|
|
||||||
for p in self.players:
|
|
||||||
r['playersinfo'][p.user] = User.query.get(p.user).name
|
|
||||||
r['nr'] = self.get_nr(user)
|
r['nr'] = self.get_nr(user)
|
||||||
r['admin'] = self.admin
|
|
||||||
cards = self.get_player(user).cards
|
cards = self.get_player(user).cards
|
||||||
r['cards'] = cards.split(',') if cards is not None else []
|
r['cards'] = cards.split(',') if cards is not None else []
|
||||||
return r
|
return r
|
||||||
|
@ -259,8 +259,7 @@ socket.on('play', function(data){
|
|||||||
});
|
});
|
||||||
|
|
||||||
socket.on('disconnect', function() {
|
socket.on('disconnect', function() {
|
||||||
$('#chat').prepend('<b>Souci technique</b> : Vous avez été déconnecté<br />Une tentative de reconnexion va avoir lieu<br />');
|
$('#chat').prepend('<b>Souci technique</b> : Vous avez été déconnecté. Veuillez recharger la page.<br />');
|
||||||
setTimeout(function(){window.location.reload()}, 5000);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#texte-msg').pressEnter(function(e){
|
$('#texte-msg').pressEnter(function(e){
|
||||||
|
@ -17,8 +17,34 @@
|
|||||||
{% endfor %}
|
{% endfor %}
|
||||||
<form action="" method="POST" accept-charset="utf-8">
|
<form action="" method="POST" accept-charset="utf-8">
|
||||||
Nom du jeu : <input type="text" name="name" id="name" placeholder="Nom du jeu"/><br />
|
Nom du jeu : <input type="text" name="name" id="name" placeholder="Nom du jeu"/><br />
|
||||||
Maitre du jeu : <input type="text" name="admin" placeholder="Login du maitre du jeu" /><br />
|
Démarrer le jeu (founir 4 joueurs) <input type="checkbox" name="fixplayers" /> <br />
|
||||||
<input id="submit" type="submit" value="Créer">
|
<br />
|
||||||
|
Ajoutez au moins un joueur :<br /><br />
|
||||||
|
<table>
|
||||||
|
<tr><td></td><td>Login</td><td>Maitre jeu</td>
|
||||||
|
<tr><td>
|
||||||
|
Joueur 1* :</td><td> <input type="text" name="player0" placeholder="Login" /><br />
|
||||||
|
</td><td>
|
||||||
|
<input type="radio" name="admin" value="0" checked />
|
||||||
|
</td>
|
||||||
|
</tr><tr><td>
|
||||||
|
Joueur 2 :</td><td> <input type="text" name="player1" placeholder="Login ou vide" /><br />
|
||||||
|
</td><td>
|
||||||
|
<input type="radio" name="admin" value="1" />
|
||||||
|
</td>
|
||||||
|
</tr><tr><td>
|
||||||
|
Joueur 3 :</td><td> <input type="text" name="player2" placeholder="Login ou vide" /><br />
|
||||||
|
</td><td>
|
||||||
|
<input type="radio" name="admin" value="2" />
|
||||||
|
</td>
|
||||||
|
</tr><tr><td>
|
||||||
|
Joueur 4 :</td><td> <input type="text" name="player3" placeholder="Login ou vide" /><br />
|
||||||
|
</td><td>
|
||||||
|
<input type="radio" name="admin" value="3" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<input id="submit" type="submit" value="Créer" />
|
||||||
</form>
|
</form>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</div>
|
</div>
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
<tr><td>Id</td><td>Name</td><td>Partie</td><td>Joueurs</td><td>Status</td><td>Actions</td></tr>
|
<tr><td>Id</td><td>Name</td><td>Partie</td><td>Joueurs</td><td>Status</td><td>Actions</td></tr>
|
||||||
</thead>
|
</thead>
|
||||||
{% for g in games %}
|
{% for g in games %}
|
||||||
<tr><td>{{ g.id }}</td><td><a href="/game/{{g.id}}">{{ g.name }}</a></td><td>{{ g.partie }}</td><td>{% for p in g.players %}{{ p.user }} {% endfor %}</td>
|
<tr><td>{{ g.id }}</td><td>{{ g.name }}</td><td>{{ g.partie }}</td><td>{% for p in g.players %}{{ p.user }} {% endfor %}</td>
|
||||||
<td>{% if g.start %} Started {% elif g.fixplayers %}Players set{% else %}Join{% endif %}</td>
|
<td>{% if g.start %} Started {% elif g.fixplayers %}Players set{% else %}Join{% endif %}</td>
|
||||||
<td><a href="/game/{{g.id}}/see">Voir</a> <a href="/admin/games/{{ g.id }}/del"><img src="/static/croix.png" alt="Del" /></a></td></tr>
|
<td><a href="/game/{{g.id}}/see">Voir</a> <a href="/admin/games/{{ g.id }}/del"><img src="/static/croix.png" alt="Del" /></a></td></tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
@ -30,10 +30,10 @@
|
|||||||
<div id="username-item1" class="menu-item" onclick="javascript:go('/games')">Liste des jeux</div>
|
<div id="username-item1" class="menu-item" onclick="javascript:go('/games')">Liste des jeux</div>
|
||||||
<div id="username-item2" class="menu-item" onclick="javascript:go('/password')">Changer mon mot de passe</div>
|
<div id="username-item2" class="menu-item" onclick="javascript:go('/password')">Changer mon mot de passe</div>
|
||||||
<div id="username-item3" class="menu-item" onclick="javascript:go('/logout')">Se déconnecter</div>
|
<div id="username-item3" class="menu-item" onclick="javascript:go('/logout')">Se déconnecter</div>
|
||||||
{% if user.level > 8 %}
|
{% if user.level >= 8 %}
|
||||||
<div id="username-item4" class="menu-item" onclick="javascript:go('/admin/games')">Admin des jeux</div>
|
<div id="username-item4" class="menu-item" onclick="javascript:go('/admin/games')">Admin des jeux</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if user.level > 9 %}
|
{% if user.level >= 9 %}
|
||||||
<div id="username-item5" class="menu-item" onclick="javascript:go('/admin/users')">Admin des utilisateurs</div>
|
<div id="username-item5" class="menu-item" onclick="javascript:go('/admin/users')">Admin des utilisateurs</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% else %}
|
{% else %}
|
||||||
|
Loading…
Reference in New Issue
Block a user