Added camera enabling and disabling

This commit is contained in:
2026-06-04 16:32:30 +02:00
parent 988cb53de1
commit b71a685c58
12 changed files with 11539 additions and 168 deletions
+44 -22
View File
@@ -1,5 +1,5 @@
"""
TV_APP V1.0.1 - Tournament and League Management System
TV_APP V1.0.2 - Tournament and League Management System
Flask web application for managing tournaments with multi-camera streaming
"""
@@ -87,8 +87,8 @@ def archive_league(league_data):
def create_league(enabled_players, tournament_type):
return Tournament.create_league(enabled_players, tournament_type)
def create_draft(enabled_players, tournament_type='20_targets', league_tournament_number=None):
return Tournament.create_draft(enabled_players, tournament_type, league_tournament_number)
def create_draft(enabled_players, tournament_type='20_targets', league_tournament_number=None, active_slots=None):
return Tournament.create_draft(enabled_players, tournament_type, league_tournament_number, active_slots)
def create_results_structure(tournament_data):
return Tournament.create_results_structure(tournament_data)
@@ -826,14 +826,18 @@ def index():
if current_round_data:
tournament_titles = {}
players = current_round_data['players']
for i in range(6): # Always 6 positions
if i < len(players):
tournament_titles[str(i + 1)] = players[i]['name']
disabled_cameras = settings.get('disabled_cameras', [])
current_language = get_current_language()
player_idx = 0
for i in range(6):
cam_id = str(i + 1)
if i + 1 in disabled_cameras:
tournament_titles[cam_id] = 'Prazno' if current_language == 'sl' else 'Empty'
elif player_idx < len(players):
tournament_titles[cam_id] = players[player_idx]['name']
player_idx += 1
else:
# Use "Prazno" for Slovenian, "Empty" for English
current_language = get_current_language()
tournament_titles[str(i + 1)] = 'Prazno' if current_language == 'sl' else 'Empty'
tournament_titles[cam_id] = 'Prazno' if current_language == 'sl' else 'Empty'
# Create a copy of settings with tournament titles
display_settings = settings.copy()
@@ -1071,9 +1075,11 @@ def tournament_draft():
if not tournament_state:
return redirect('/tournament')
return render_template('draft.html',
settings = load_settings()
return render_template('draft.html',
tournament=tournament_state,
league=league_state)
league=league_state,
disabled_cameras=settings.get('disabled_cameras', []))
@app.route('/results/calculator')
def results_calculator():
@@ -1244,6 +1250,9 @@ def update_settings():
if 'display_options' in new_settings:
current_settings['display_options'].update(new_settings['display_options'])
if 'disabled_cameras' in new_settings:
current_settings['disabled_cameras'] = new_settings['disabled_cameras']
# Save updated settings
if save_settings(current_settings):
return jsonify({'status': 'success', 'settings': current_settings})
@@ -1414,10 +1423,14 @@ def start_league_tournament():
# Start next tournament
league_state['current_tournament'] = current_tournament + 1
settings = load_settings()
disabled = settings.get('disabled_cameras', [])
active_slots = [i for i in range(1, 7) if i not in disabled]
tournament_data = create_draft(
participating_players,
participating_players,
league_state['tournament_type'],
league_state['current_tournament']
league_state['current_tournament'],
active_slots
)
# Save states
@@ -1470,11 +1483,14 @@ def start_tournament():
players_data = load_players()
enabled_players = [p for p in players_data['players'] if p['enabled']]
if len(enabled_players) < 1:
return jsonify({'status': 'error', 'message': 'Need at least 1 enabled player'}), 400
tournament_data = create_draft(enabled_players, tournament_type)
settings = load_settings()
disabled = settings.get('disabled_cameras', [])
active_slots = [i for i in range(1, 7) if i not in disabled]
tournament_data = create_draft(enabled_players, tournament_type, active_slots=active_slots)
if save_tournament_state(tournament_data):
# Create results structure when tournament starts
@@ -1996,13 +2012,19 @@ def get_camera_titles():
titles = {}
if current_round_data:
# Tournament active - use player names
# Tournament active - use player names, skip disabled cameras
players = current_round_data['players']
disabled_cameras = settings.get('disabled_cameras', [])
player_idx = 0
for i in range(6):
if i < len(players):
titles[str(i + 1)] = players[i]['name']
cam_id = str(i + 1)
if i + 1 in disabled_cameras:
titles[cam_id] = 'Empty'
elif player_idx < len(players):
titles[cam_id] = players[player_idx]['name']
player_idx += 1
else:
titles[str(i + 1)] = 'Empty'
titles[cam_id] = 'Empty'
else:
# No tournament - use configured titles
titles = settings['camera_titles']
@@ -2541,4 +2563,4 @@ def set_language(language):
}), 400
if __name__ == '__main__':
app.run(host='0.0.0.0', port=4000, debug=True)
app.run(host='0.0.0.0', port=5000, debug=True)