retrait de page html redondantes, ajout de la modification des username et affichage des userrname au lieu des noms complets

This commit is contained in:
cedrick2711
2026-07-23 21:44:35 -04:00
parent bf4c0ce4b1
commit 322b67e26f
35 changed files with 188 additions and 119 deletions
+23 -17
View File
@@ -66,7 +66,7 @@ def list_users():
flash('Only the president can manage users.', 'danger')
return redirect(url_for('main.dashboard'))
users = User.query.order_by(User.role, User.full_name).all()
users = User.query.order_by(User.role, User.username).all()
return render_template('pages/users.html', users=users, roles=ROLES)
@@ -124,7 +124,7 @@ def edit_user(user_id):
user.password_hash = hash_password(password)
db.session.commit()
flash(f'User {user.full_name} updated successfully!', 'success')
flash(f'User {user.username} updated successfully!', 'success')
return redirect(url_for('users.list_users'))
user_gamertags = {gt.game: {'gamertag': gt.gamertag, 'platform': gt.platform} for gt in user.gamertags}
@@ -207,7 +207,7 @@ def delete_user(user_id):
db.session.delete(user)
db.session.commit()
flash(f'User {user.full_name} has been removed.', 'success')
flash(f'User {user.username} has been removed.', 'success')
return redirect(url_for('users.list_users'))
@@ -292,6 +292,7 @@ def edit_profile():
Response: Edit form or redirect to profile.
"""
if request.method == 'POST':
username = request.form.get('username')
full_name = request.form.get('full_name')
email = request.form.get('email')
phone = request.form.get('phone')
@@ -301,10 +302,15 @@ def edit_profile():
discord_user_id = request.form.get('discord_user_id', '').strip()
league_os_profile = request.form.get('league_os_profile', '').strip()
if username != current_user.username and User.query.filter_by(username=username).first():
flash('Username already taken.', 'danger')
return render_template('pages/edit_profile.html', user=current_user, esport_games=ESPORT_GAMES, game_platforms=GAME_PLATFORMS, user_gamertags={gt.game: {'gamertag': gt.gamertag, 'platform': gt.platform} for gt in current_user.gamertags})
if email != current_user.email and User.query.filter_by(email=email).first():
flash('Email already in use.', 'danger')
return render_template('pages/edit_profile.html', user=current_user, esport_games=ESPORT_GAMES, game_platforms=GAME_PLATFORMS)
return render_template('pages/edit_profile.html', user=current_user, esport_games=ESPORT_GAMES, game_platforms=GAME_PLATFORMS, user_gamertags={gt.game: {'gamertag': gt.gamertag, 'platform': gt.platform} for gt in current_user.gamertags})
current_user.username = username
current_user.full_name = full_name
current_user.email = email
current_user.phone = phone
@@ -358,13 +364,13 @@ def get_disponibilities():
if not current_user.can_manage_teams() and not current_user.can_schedule_matches():
return jsonify({'error': 'Unauthorized'}), 403
players = User.query.filter_by(role='player', is_active_account=True).order_by(User.full_name).all()
players = User.query.filter_by(role='player', is_active_account=True).order_by(User.username).all()
result = {}
for player in players:
disponibilities = list(player.disponibilities)
result[player.id] = {
'full_name': player.full_name,
'username': player.username,
'disponibilities': [
{
'id': d.id,
@@ -671,7 +677,7 @@ def upload_contract():
# Generate unique filename
original_filename = secure_filename(file.filename)
timestamp = datetime.now().strftime('%Y%m%d_%H%M%S')
stored_filename = f"{secure_filename(player.full_name)}_{timestamp}_{original_filename}"
stored_filename = f"{secure_filename(player.username)}_{timestamp}_{original_filename}"
stored_filename = stored_filename.replace(' ', '_')
# Save file
@@ -691,7 +697,7 @@ def upload_contract():
db.session.add(contract)
db.session.commit()
flash(f'Contract uploaded successfully for {player.full_name}!', 'success')
flash(f'Contract uploaded successfully for {player.username}!', 'success')
return redirect(url_for('users.list_contracts'))
return render_template('pages/upload_contract.html', players=players)
@@ -955,13 +961,13 @@ def one_on_one():
# Send Discord notification
send_discord_notification(
player_name=current_user.full_name,
player_name=current_user.username,
points=points,
date_str=date_str,
start_time_str=start_time_str,
end_time_str=end_time_str,
team_name=org_team.name if org_team else None,
coach_name=coach.full_name,
coach_name=coach.username,
coach_discord=coach.discord_username,
coach_discord_id=coach.discord_user_id,
request_id=request_obj.id
@@ -1207,7 +1213,7 @@ def manage_personal_notes():
players = []
if org_team:
player_ids = [tp.player_id for tp in TeamPlayer.query.filter_by(org_team_id=org_team.id).all()]
players = User.query.filter(User.id.in_(player_ids)).order_by(User.full_name).all() if player_ids else []
players = User.query.filter(User.id.in_(player_ids)).order_by(User.username).all() if player_ids else []
if request.method == 'POST':
player_id = request.form.get('player_id', type=int)
@@ -1264,7 +1270,7 @@ def notes_dashboard():
players = []
if org_team:
player_ids = [tp.player_id for tp in TeamPlayer.query.filter_by(org_team_id=org_team.id).all()]
players = User.query.filter(User.id.in_(player_ids)).order_by(User.full_name).all() if player_ids else []
players = User.query.filter(User.id.in_(player_ids)).order_by(User.username).all() if player_ids else []
# Get existing team notes
team_notes = []
@@ -1361,9 +1367,9 @@ def add_personal_note():
org_team = OrgTeam.query.filter_by(coach_id=current_user.id).first()
if org_team:
player_ids = [tp.player_id for tp in TeamPlayer.query.filter_by(org_team_id=org_team.id).all()]
players = User.query.filter(User.id.in_(player_ids)).order_by(User.full_name).all() if player_ids else []
players = User.query.filter(User.id.in_(player_ids)).order_by(User.username).all() if player_ids else []
elif current_user.role in ['president', 'manager']:
players = User.query.filter_by(role='player').order_by(User.full_name).all()
players = User.query.filter_by(role='player').order_by(User.username).all()
# Get available matches and tryouts for context
matches = []
@@ -1483,7 +1489,7 @@ def add_note_from_match(match_id):
participants = MatchParticipant.query.filter_by(match_id=match_id).all()
participant_ids = [p.player_id for p in participants]
players = User.query.filter(User.id.in_(participant_ids)).order_by(User.full_name).all() if participant_ids else []
players = User.query.filter(User.id.in_(participant_ids)).order_by(User.username).all() if participant_ids else []
# Get team notes for context
team_notes = []
@@ -1553,9 +1559,9 @@ def add_note_from_tryout(tryout_id):
# If coach, filter to only their team players; otherwise include all
if org_team:
team_player_ids = [tp.player_id for tp in TeamPlayer.query.filter_by(org_team_id=org_team.id).all()]
players = User.query.filter(User.id.in_(player_ids), User.id.in_(team_player_ids)).order_by(User.full_name).all()
players = User.query.filter(User.id.in_(player_ids), User.id.in_(team_player_ids)).order_by(User.username).all()
else:
players = User.query.filter(User.id.in_(player_ids)).order_by(User.full_name).all()
players = User.query.filter(User.id.in_(player_ids)).order_by(User.username).all()
# Get team notes for context
team_notes = []