Added camera enabling and disabling
This commit is contained in:
@@ -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)
|
||||
Reference in New Issue
Block a user