Add tournament archives and results for multiple events

- Created JSON files for tournament archives on 2025-07-28 and 2025-07-29, including detailed player scores and shot results.
- Added a new tournament results file summarizing the outcomes of the tournament held on 2025-07-29, including participant scores and completion status.
This commit is contained in:
bl3kunja-FW
2025-08-02 15:27:32 +02:00
parent 75ac46c23c
commit 5c7f255a02
45 changed files with 6840 additions and 1534 deletions
+3
View File
@@ -0,0 +1,3 @@
{
"idf.pythonInstallPath": "/usr/bin/python3"
}
-14
View File
@@ -1,14 +0,0 @@
{
"camera_titles": {
"1": "Camera 1",
"2": "Camera 2",
"3": "Camera 3",
"4": "Camera 4",
"5": "Camera 5",
"6": "Camera 6"
},
"display_options": {
"show_titles": true,
"title_size": 0.8
}
}
File diff suppressed because it is too large Load Diff
-357
View File
@@ -1,357 +0,0 @@
{
"tournament_id": "2025-07-29T20:39:47.326034",
"tournament_type": "20_targets",
"participants": {
"4": {
"name": "Mateja Pleterski",
"targets": {
"1": {
"shot1": 0,
"shot2": 6
},
"2": {
"shot1": 7,
"shot2": 0
},
"3": {
"shot1": 3,
"shot2": 1
},
"4": {
"shot1": 1,
"shot2": 0
},
"5": {
"shot1": 10,
"shot2": 2
},
"6": {
"shot1": 10,
"shot2": 5
},
"7": {
"shot1": 2,
"shot2": 2
},
"8": {
"shot1": 7,
"shot2": 10
},
"9": {
"shot1": 1,
"shot2": 5
},
"10": {
"shot1": 5,
"shot2": 10
},
"11": {
"shot1": 1,
"shot2": 1
},
"12": {
"shot1": 2,
"shot2": 7
},
"13": {
"shot1": 7,
"shot2": 4
},
"14": {
"shot1": 9,
"shot2": 5
},
"15": {
"shot1": 0,
"shot2": 10
},
"16": {
"shot1": 8,
"shot2": 8
},
"17": {
"shot1": 2,
"shot2": 8
},
"18": {
"shot1": 10,
"shot2": 8
},
"19": {
"shot1": 6,
"shot2": 6
},
"20": {
"shot1": 4,
"shot2": 6
}
},
"total_score": 199,
"completed": true
},
"2": {
"name": "Nik Pleterski",
"targets": {
"1": {
"shot1": 2,
"shot2": 5
},
"2": {
"shot1": 3,
"shot2": 7
},
"3": {
"shot1": 7,
"shot2": 7
},
"4": {
"shot1": 7,
"shot2": 2
},
"5": {
"shot1": 2,
"shot2": 4
},
"6": {
"shot1": 2,
"shot2": 6
},
"7": {
"shot1": 0,
"shot2": 5
},
"8": {
"shot1": 5,
"shot2": 4
},
"9": {
"shot1": 9,
"shot2": 7
},
"10": {
"shot1": 5,
"shot2": 8
},
"11": {
"shot1": 5,
"shot2": 8
},
"12": {
"shot1": 5,
"shot2": 4
},
"13": {
"shot1": 4,
"shot2": 7
},
"14": {
"shot1": 1,
"shot2": 10
},
"15": {
"shot1": 5,
"shot2": 3
},
"16": {
"shot1": 8,
"shot2": 5
},
"17": {
"shot1": 4,
"shot2": 9
},
"18": {
"shot1": 3,
"shot2": 1
},
"19": {
"shot1": 10,
"shot2": 10
},
"20": {
"shot1": 7,
"shot2": 0
}
},
"total_score": 206,
"completed": true
},
"1": {
"name": "Domen Pleterski",
"targets": {
"1": {
"shot1": 6,
"shot2": 1
},
"2": {
"shot1": 6,
"shot2": 5
},
"3": {
"shot1": 7,
"shot2": 5
},
"4": {
"shot1": 7,
"shot2": 8
},
"5": {
"shot1": 10,
"shot2": 6
},
"6": {
"shot1": 7,
"shot2": 0
},
"7": {
"shot1": 1,
"shot2": 8
},
"8": {
"shot1": 3,
"shot2": 1
},
"9": {
"shot1": 6,
"shot2": 8
},
"10": {
"shot1": 3,
"shot2": 6
},
"11": {
"shot1": 1,
"shot2": 8
},
"12": {
"shot1": 0,
"shot2": 2
},
"13": {
"shot1": 1,
"shot2": 8
},
"14": {
"shot1": 5,
"shot2": 4
},
"15": {
"shot1": 1,
"shot2": 3
},
"16": {
"shot1": 1,
"shot2": 10
},
"17": {
"shot1": 0,
"shot2": 6
},
"18": {
"shot1": 6,
"shot2": 5
},
"19": {
"shot1": 8,
"shot2": 6
},
"20": {
"shot1": 4,
"shot2": 3
}
},
"total_score": 186,
"completed": true
},
"3": {
"name": "Ivan Tandler",
"targets": {
"1": {
"shot1": 5,
"shot2": 8
},
"2": {
"shot1": 9,
"shot2": 3
},
"3": {
"shot1": 3,
"shot2": 1
},
"4": {
"shot1": 4,
"shot2": 8
},
"5": {
"shot1": 3,
"shot2": 1
},
"6": {
"shot1": 9,
"shot2": 5
},
"7": {
"shot1": 8,
"shot2": 0
},
"8": {
"shot1": 0,
"shot2": 2
},
"9": {
"shot1": 10,
"shot2": 6
},
"10": {
"shot1": 1,
"shot2": 3
},
"11": {
"shot1": 8,
"shot2": 3
},
"12": {
"shot1": 8,
"shot2": 8
},
"13": {
"shot1": 6,
"shot2": 3
},
"14": {
"shot1": 10,
"shot2": 2
},
"15": {
"shot1": 10,
"shot2": 2
},
"16": {
"shot1": 9,
"shot2": 2
},
"17": {
"shot1": 9,
"shot2": 4
},
"18": {
"shot1": 2,
"shot2": 10
},
"19": {
"shot1": 5,
"shot2": 9
},
"20": {
"shot1": 9,
"shot2": 5
}
},
"total_score": 213,
"completed": true
}
},
"tournament_finished": true,
"created_at": "2025-07-29T20:39:47.326244",
"finished_at": "2025-07-29T20:39:58.449723"
}
+72 -11
View File
@@ -1242,13 +1242,12 @@ def mobile_results():
show_league_results=True, show_league_results=True,
show_tournament_results=False, show_tournament_results=False,
tournament_active=False, tournament_active=False,
results=None) # No individual tournament results results=None)
else: else:
# Show ongoing league scoreboard # Show ongoing league scoreboard
calculate_league_final_scores(league_state) calculate_league_final_scores(league_state)
participants = get_league_current_standings(league_state) participants = get_league_current_standings(league_state)
# Check if there's a current tournament
tournament_state = load_tournament_state() tournament_state = load_tournament_state()
tournament_active = tournament_state is not None tournament_active = tournament_state is not None
current_tournament_results = results current_tournament_results = results
@@ -1262,7 +1261,36 @@ def mobile_results():
tournament_state=tournament_state, tournament_state=tournament_state,
current_tournament_results=current_tournament_results) current_tournament_results=current_tournament_results)
# Priority 2: Show individual tournament results (standalone tournament) # Priority 1.5: Check if current results are from a finished league
elif results and results.get('league_tournament_number'):
# This is a league tournament result, but league state was archived
league_archives = get_archived_leagues()
if league_archives:
latest_archive = league_archives[0]
archive_data = load_archive_file(latest_archive['filepath'])
if archive_data and 'league' in archive_data:
archived_league = archive_data['league']
calculate_league_final_scores(archived_league)
participants = get_league_final_rankings(archived_league)
return render_template('mobile_results.html',
league=archived_league,
participants=participants,
show_league_results=True,
show_tournament_results=False,
tournament_active=False,
results=None,
archived=True,
archive_info={
'filename': latest_archive['filename'],
'archived_at': archive_data.get('archived_at')
})
return redirect('/mobile/archive')
# Priority 2: Show individual tournament results (standalone tournament only)
elif results and results.get('tournament_finished', False): elif results and results.get('tournament_finished', False):
participants = [] participants = []
for player_id, data in results['participants'].items(): for player_id, data in results['participants'].items():
@@ -1281,7 +1309,7 @@ def mobile_results():
participant['rank'] = i + 1 participant['rank'] = i + 1
return render_template('mobile_results.html', return render_template('mobile_results.html',
results=results, # ← FIXED: Pass as 'results' results=results,
participants=participants, participants=participants,
show_league_results=False, show_league_results=False,
show_tournament_results=True, show_tournament_results=True,
@@ -1395,13 +1423,13 @@ def results_display():
return render_template('league_scoreboard_display.html', return render_template('league_scoreboard_display.html',
league=league_state, league=league_state,
participants=participants) participants=participants,
results=None)
else: else:
# Show ongoing league scoreboard # Show ongoing league scoreboard
calculate_league_final_scores(league_state) # Calculate current standings calculate_league_final_scores(league_state)
participants = get_league_current_standings(league_state) # Use the helper function participants = get_league_current_standings(league_state)
# Add tournament information
tournament_state = load_tournament_state() tournament_state = load_tournament_state()
current_tournament_results = results current_tournament_results = results
@@ -1409,9 +1437,41 @@ def results_display():
league=league_state, league=league_state,
participants=participants, participants=participants,
tournament_state=tournament_state, tournament_state=tournament_state,
current_tournament_results=current_tournament_results) current_tournament_results=current_tournament_results,
results=None)
# Priority 2: Show individual tournament results (standalone tournament) # Priority 1.5: Check if current results are from a finished league (even if league state was archived)
elif results and results.get('league_tournament_number'):
# This is a league tournament result, but league state was archived
# Try to find the archived league data
league_archives = get_archived_leagues()
# Find the most recent league archive (should be the one that just finished)
if league_archives:
latest_archive = league_archives[0] # Already sorted by date (newest first)
archive_data = load_archive_file(latest_archive['filepath'])
if archive_data and 'league' in archive_data:
archived_league = archive_data['league']
# Show final league results from archive
calculate_league_final_scores(archived_league)
participants = get_league_final_rankings(archived_league)
return render_template('league_scoreboard_display.html',
league=archived_league,
participants=participants,
results=None,
archived=True,
archive_info={
'filename': latest_archive['filename'],
'archived_at': archive_data.get('archived_at')
})
# If we can't find the archive, redirect to archive page
return redirect('/archive')
# Priority 2: Show individual tournament results (standalone tournament only)
elif results and results.get('tournament_finished', False): elif results and results.get('tournament_finished', False):
participants = [] participants = []
for player_id, data in results['participants'].items(): for player_id, data in results['participants'].items():
@@ -1431,7 +1491,8 @@ def results_display():
return render_template('results_display.html', return render_template('results_display.html',
results=results, results=results,
participants=participants) participants=participants,
league=None)
else: else:
return redirect('/tournament') return redirect('/tournament')
+14
View File
@@ -0,0 +1,14 @@
{
"camera_titles": {
"1": "Du\u0161an Onuk",
"2": "Domen Pleterski",
"3": "Camera 3",
"4": "Matej \u017dnidari\u010d",
"5": "Jo\u017ee Preglav",
"6": "Camera 6"
},
"display_options": {
"show_titles": false,
"title_size": 0.8
}
}
+344
View File
@@ -0,0 +1,344 @@
{
"league": {
"league_id": "league_20250731_173343",
"created_at": "2025-07-31T17:33:43.003335",
"tournament_type": "20_targets",
"total_tournaments": 6,
"current_tournament": 6,
"participants": {
"1": {
"name": "Domen Pleterski",
"joker_used": true,
"tournament_results": [
{
"tournament": 1,
"score": 220,
"participated": true
},
{
"tournament": 2,
"score": 205,
"participated": true
},
{
"tournament": 3,
"score": 185,
"participated": true
},
{
"tournament": 4,
"score": 0,
"participated": false,
"joker": true
},
{
"tournament": 5,
"score": 210,
"participated": true
},
{
"tournament": 6,
"score": 197,
"participated": true
}
],
"total_score": 1017,
"final_score": 1017,
"tournaments_participated": 5
},
"2": {
"name": "Nik Pleterski",
"joker_used": true,
"tournament_results": [
{
"tournament": 1,
"score": 210,
"participated": true
},
{
"tournament": 2,
"score": 0,
"participated": false,
"joker": true
},
{
"tournament": 3,
"score": 197,
"participated": true
},
{
"tournament": 4,
"score": 211,
"participated": true
},
{
"tournament": 5,
"score": 187,
"participated": true
},
{
"tournament": 6,
"score": 187,
"participated": true
}
],
"total_score": 992,
"final_score": 992,
"tournaments_participated": 5
},
"3": {
"name": "Ivan Tandler",
"joker_used": true,
"tournament_results": [
{
"tournament": 1,
"score": 222,
"participated": true
},
{
"tournament": 2,
"score": 173,
"participated": true
},
{
"tournament": 3,
"score": 0,
"participated": false,
"joker": true
},
{
"tournament": 4,
"score": 217,
"participated": true
},
{
"tournament": 5,
"score": 170,
"participated": true
},
{
"tournament": 6,
"score": 203,
"participated": true
}
],
"total_score": 985,
"final_score": 985,
"tournaments_participated": 5
},
"4": {
"name": "Mateja Pleterski",
"joker_used": true,
"tournament_results": [
{
"tournament": 1,
"score": 182,
"participated": true
},
{
"tournament": 2,
"score": 176,
"participated": true
},
{
"tournament": 3,
"score": 193,
"participated": true
},
{
"tournament": 4,
"score": 234,
"participated": true
},
{
"tournament": 5,
"score": 0,
"participated": false,
"joker": true
},
{
"tournament": 6,
"score": 207,
"participated": true
}
],
"total_score": 992,
"final_score": 992,
"tournaments_participated": 5
},
"13": {
"name": "Angelca Mrak",
"joker_used": true,
"tournament_results": [
{
"tournament": 1,
"score": 200,
"participated": true
},
{
"tournament": 2,
"score": 221,
"participated": true
},
{
"tournament": 3,
"score": 211,
"participated": true
},
{
"tournament": 4,
"score": 204,
"participated": true
},
{
"tournament": 5,
"score": 0,
"participated": false,
"joker": true
},
{
"tournament": 6,
"score": 246,
"participated": true
}
],
"total_score": 1082,
"final_score": 1082,
"tournaments_participated": 5
},
"25": {
"name": "Andrej Herman",
"joker_used": true,
"tournament_results": [
{
"tournament": 1,
"score": 204,
"participated": true
},
{
"tournament": 2,
"score": 197,
"participated": true
},
{
"tournament": 3,
"score": 182,
"participated": true
},
{
"tournament": 4,
"score": 0,
"participated": false,
"joker": true
},
{
"tournament": 5,
"score": 207,
"participated": true
},
{
"tournament": 6,
"score": 217,
"participated": true
}
],
"total_score": 1007,
"final_score": 1007,
"tournaments_participated": 5
},
"29": {
"name": "Alen Kolar",
"joker_used": true,
"tournament_results": [
{
"tournament": 1,
"score": 229,
"participated": true
},
{
"tournament": 2,
"score": 207,
"participated": true
},
{
"tournament": 3,
"score": 0,
"participated": false,
"joker": true
},
{
"tournament": 4,
"score": 226,
"participated": true
},
{
"tournament": 5,
"score": 200,
"participated": true
},
{
"tournament": 6,
"score": 169,
"participated": true
}
],
"total_score": 1031,
"final_score": 1031,
"tournaments_participated": 5
}
},
"completed_tournaments": [
{
"tournament_number": 1,
"finished_at": "2025-07-31T17:33:56.405378",
"results_summary": {
"participants": 7,
"total_shots": 280
}
},
{
"tournament_number": 2,
"finished_at": "2025-07-31T17:34:14.060958",
"results_summary": {
"participants": 6,
"total_shots": 240
}
},
{
"tournament_number": 3,
"finished_at": "2025-07-31T17:34:27.782812",
"results_summary": {
"participants": 5,
"total_shots": 200
}
},
{
"tournament_number": 4,
"finished_at": "2025-07-31T17:34:43.339685",
"results_summary": {
"participants": 5,
"total_shots": 200
}
},
{
"tournament_number": 5,
"finished_at": "2025-07-31T17:34:57.485220",
"results_summary": {
"participants": 5,
"total_shots": 200
}
},
{
"tournament_number": 6,
"finished_at": "2025-07-31T17:35:12.114486",
"results_summary": {
"participants": 7,
"total_shots": 280
}
}
],
"league_finished": true,
"finished_at": "2025-07-31T17:35:12.114488"
},
"archived_at": "2025-07-31T17:35:12.114881"
}
+344
View File
@@ -0,0 +1,344 @@
{
"league": {
"league_id": "league_20250731_173903",
"created_at": "2025-07-31T17:39:03.970552",
"tournament_type": "20_targets",
"total_tournaments": 6,
"current_tournament": 6,
"participants": {
"1": {
"name": "Domen Pleterski",
"joker_used": true,
"tournament_results": [
{
"tournament": 1,
"score": 219,
"participated": true
},
{
"tournament": 2,
"score": 221,
"participated": true
},
{
"tournament": 3,
"score": 180,
"participated": true
},
{
"tournament": 4,
"score": 208,
"participated": true
},
{
"tournament": 5,
"score": 214,
"participated": true
},
{
"tournament": 6,
"score": 0,
"participated": false,
"joker": true
}
],
"total_score": 1042,
"final_score": 1042,
"tournaments_participated": 5
},
"2": {
"name": "Nik Pleterski",
"joker_used": true,
"tournament_results": [
{
"tournament": 1,
"score": 0,
"participated": false,
"joker": true
},
{
"tournament": 2,
"score": 218,
"participated": true
},
{
"tournament": 3,
"score": 169,
"participated": true
},
{
"tournament": 4,
"score": 210,
"participated": true
},
{
"tournament": 5,
"score": 196,
"participated": true
},
{
"tournament": 6,
"score": 259,
"participated": true
}
],
"total_score": 1052,
"final_score": 1052,
"tournaments_participated": 5
},
"3": {
"name": "Ivan Tandler",
"joker_used": true,
"tournament_results": [
{
"tournament": 1,
"score": 216,
"participated": true
},
{
"tournament": 2,
"score": 166,
"participated": true
},
{
"tournament": 3,
"score": 0,
"participated": false,
"joker": true
},
{
"tournament": 4,
"score": 207,
"participated": true
},
{
"tournament": 5,
"score": 227,
"participated": true
},
{
"tournament": 6,
"score": 203,
"participated": true
}
],
"total_score": 1019,
"final_score": 1019,
"tournaments_participated": 5
},
"4": {
"name": "Mateja Pleterski",
"joker_used": true,
"tournament_results": [
{
"tournament": 1,
"score": 171,
"participated": true
},
{
"tournament": 2,
"score": 214,
"participated": true
},
{
"tournament": 3,
"score": 195,
"participated": true
},
{
"tournament": 4,
"score": 208,
"participated": true
},
{
"tournament": 5,
"score": 0,
"participated": false,
"joker": true
},
{
"tournament": 6,
"score": 184,
"participated": true
}
],
"total_score": 972,
"final_score": 972,
"tournaments_participated": 5
},
"13": {
"name": "Angelca Mrak",
"joker_used": true,
"tournament_results": [
{
"tournament": 1,
"score": 157,
"participated": true
},
{
"tournament": 2,
"score": 220,
"participated": true
},
{
"tournament": 3,
"score": 236,
"participated": true
},
{
"tournament": 4,
"score": 186,
"participated": true
},
{
"tournament": 5,
"score": 0,
"participated": false,
"joker": true
},
{
"tournament": 6,
"score": 197,
"participated": true
}
],
"total_score": 996,
"final_score": 996,
"tournaments_participated": 5
},
"25": {
"name": "Andrej Herman",
"joker_used": true,
"tournament_results": [
{
"tournament": 1,
"score": 0,
"participated": false,
"joker": true
},
{
"tournament": 2,
"score": 220,
"participated": true
},
{
"tournament": 3,
"score": 233,
"participated": true
},
{
"tournament": 4,
"score": 223,
"participated": true
},
{
"tournament": 5,
"score": 209,
"participated": true
},
{
"tournament": 6,
"score": 198,
"participated": true
}
],
"total_score": 1083,
"final_score": 1083,
"tournaments_participated": 5
},
"29": {
"name": "Alen Kolar",
"joker_used": true,
"tournament_results": [
{
"tournament": 1,
"score": 234,
"participated": true
},
{
"tournament": 2,
"score": 191,
"participated": true
},
{
"tournament": 3,
"score": 0,
"participated": false,
"joker": true
},
{
"tournament": 4,
"score": 193,
"participated": true
},
{
"tournament": 5,
"score": 246,
"participated": true
},
{
"tournament": 6,
"score": 214,
"participated": true
}
],
"total_score": 1078,
"final_score": 1078,
"tournaments_participated": 5
}
},
"completed_tournaments": [
{
"tournament_number": 1,
"finished_at": "2025-07-31T17:39:16.284855",
"results_summary": {
"participants": 5,
"total_shots": 200
}
},
{
"tournament_number": 2,
"finished_at": "2025-07-31T17:39:55.486212",
"results_summary": {
"participants": 7,
"total_shots": 280
}
},
{
"tournament_number": 3,
"finished_at": "2025-07-31T17:40:10.903343",
"results_summary": {
"participants": 5,
"total_shots": 200
}
},
{
"tournament_number": 4,
"finished_at": "2025-07-31T17:40:42.401098",
"results_summary": {
"participants": 7,
"total_shots": 280
}
},
{
"tournament_number": 5,
"finished_at": "2025-07-31T17:40:56.790144",
"results_summary": {
"participants": 5,
"total_shots": 200
}
},
{
"tournament_number": 6,
"finished_at": "2025-07-31T17:41:10.701493",
"results_summary": {
"participants": 6,
"total_shots": 240
}
}
],
"league_finished": true,
"finished_at": "2025-07-31T17:41:10.701495"
},
"archived_at": "2025-07-31T17:41:10.701867"
}
+344
View File
@@ -0,0 +1,344 @@
{
"league": {
"league_id": "league_20250731_204835",
"created_at": "2025-07-31T20:48:35.867628",
"tournament_type": "20_targets",
"total_tournaments": 6,
"current_tournament": 6,
"participants": {
"1": {
"name": "Domen Pleterski",
"joker_used": true,
"tournament_results": [
{
"tournament": 1,
"score": 185,
"participated": true
},
{
"tournament": 2,
"score": 0,
"participated": false,
"joker": true
},
{
"tournament": 3,
"score": 184,
"participated": true
},
{
"tournament": 4,
"score": 207,
"participated": true
},
{
"tournament": 5,
"score": 190,
"participated": true
},
{
"tournament": 6,
"score": 216,
"participated": true
}
],
"total_score": 982,
"final_score": 982,
"tournaments_participated": 5
},
"2": {
"name": "Nik Pleterski",
"joker_used": true,
"tournament_results": [
{
"tournament": 1,
"score": 208,
"participated": true
},
{
"tournament": 2,
"score": 182,
"participated": true
},
{
"tournament": 3,
"score": 0,
"participated": false,
"joker": true
},
{
"tournament": 4,
"score": 197,
"participated": true
},
{
"tournament": 5,
"score": 186,
"participated": true
},
{
"tournament": 6,
"score": 207,
"participated": true
}
],
"total_score": 980,
"final_score": 980,
"tournaments_participated": 5
},
"3": {
"name": "Ivan Tandler",
"joker_used": true,
"tournament_results": [
{
"tournament": 1,
"score": 207,
"participated": true
},
{
"tournament": 2,
"score": 176,
"participated": true
},
{
"tournament": 3,
"score": 206,
"participated": true
},
{
"tournament": 4,
"score": 0,
"participated": false,
"joker": true
},
{
"tournament": 5,
"score": 229,
"participated": true
},
{
"tournament": 6,
"score": 214,
"participated": true
}
],
"total_score": 1032,
"final_score": 1032,
"tournaments_participated": 5
},
"4": {
"name": "Mateja Pleterski",
"joker_used": true,
"tournament_results": [
{
"tournament": 1,
"score": 193,
"participated": true
},
{
"tournament": 2,
"score": 234,
"participated": true
},
{
"tournament": 3,
"score": 180,
"participated": true
},
{
"tournament": 4,
"score": 180,
"participated": true
},
{
"tournament": 5,
"score": 0,
"participated": false,
"joker": true
},
{
"tournament": 6,
"score": 201,
"participated": true
}
],
"total_score": 988,
"final_score": 988,
"tournaments_participated": 5
},
"13": {
"name": "Angelca Mrak",
"joker_used": true,
"tournament_results": [
{
"tournament": 1,
"score": 189,
"participated": true
},
{
"tournament": 2,
"score": 0,
"participated": false,
"joker": true
},
{
"tournament": 3,
"score": 226,
"participated": true
},
{
"tournament": 4,
"score": 238,
"participated": true
},
{
"tournament": 5,
"score": 179,
"participated": true
},
{
"tournament": 6,
"score": 238,
"participated": true
}
],
"total_score": 1070,
"final_score": 1070,
"tournaments_participated": 5
},
"25": {
"name": "Andrej Herman",
"joker_used": true,
"tournament_results": [
{
"tournament": 1,
"score": 210,
"participated": true
},
{
"tournament": 2,
"score": 187,
"participated": true
},
{
"tournament": 3,
"score": 0,
"participated": false,
"joker": true
},
{
"tournament": 4,
"score": 206,
"participated": true
},
{
"tournament": 5,
"score": 203,
"participated": true
},
{
"tournament": 6,
"score": 179,
"participated": true
}
],
"total_score": 985,
"final_score": 985,
"tournaments_participated": 5
},
"29": {
"name": "Alen Kolar",
"joker_used": true,
"tournament_results": [
{
"tournament": 1,
"score": 175,
"participated": true
},
{
"tournament": 2,
"score": 198,
"participated": true
},
{
"tournament": 3,
"score": 192,
"participated": true
},
{
"tournament": 4,
"score": 0,
"participated": false,
"joker": true
},
{
"tournament": 5,
"score": 174,
"participated": true
},
{
"tournament": 6,
"score": 190,
"participated": true
}
],
"total_score": 929,
"final_score": 929,
"tournaments_participated": 5
}
},
"completed_tournaments": [
{
"tournament_number": 1,
"finished_at": "2025-07-31T20:48:49.197577",
"results_summary": {
"participants": 7,
"total_shots": 280
}
},
{
"tournament_number": 2,
"finished_at": "2025-07-31T20:49:06.385339",
"results_summary": {
"participants": 5,
"total_shots": 200
}
},
{
"tournament_number": 3,
"finished_at": "2025-07-31T20:49:21.018321",
"results_summary": {
"participants": 5,
"total_shots": 200
}
},
{
"tournament_number": 4,
"finished_at": "2025-07-31T20:49:34.123174",
"results_summary": {
"participants": 5,
"total_shots": 200
}
},
{
"tournament_number": 5,
"finished_at": "2025-07-31T20:49:49.984360",
"results_summary": {
"participants": 6,
"total_shots": 240
}
},
{
"tournament_number": 6,
"finished_at": "2025-07-31T20:50:05.948274",
"results_summary": {
"participants": 7,
"total_shots": 280
}
}
],
"league_finished": true,
"finished_at": "2025-07-31T20:50:05.948277"
},
"archived_at": "2025-07-31T20:50:05.948659"
}
@@ -0,0 +1,62 @@
{
"league": {
"league_id": "league_20250731_210531",
"created_at": "2025-07-31T21:05:31.154532",
"tournament_type": "20_targets",
"total_tournaments": 6,
"current_tournament": 0,
"participants": {
"1": {
"name": "Player 1",
"joker_used": false,
"tournament_results": [],
"total_score": 0,
"final_score": 0,
"tournaments_participated": 0
},
"2": {
"name": "Player 2",
"joker_used": false,
"tournament_results": [],
"total_score": 0,
"final_score": 0,
"tournaments_participated": 0
},
"3": {
"name": "Player 3",
"joker_used": false,
"tournament_results": [],
"total_score": 0,
"final_score": 0,
"tournaments_participated": 0
},
"4": {
"name": "Player 4",
"joker_used": false,
"tournament_results": [],
"total_score": 0,
"final_score": 0,
"tournaments_participated": 0
},
"5": {
"name": "Player 5",
"joker_used": false,
"tournament_results": [],
"total_score": 0,
"final_score": 0,
"tournaments_participated": 0
},
"6": {
"name": "Player 6",
"joker_used": false,
"tournament_results": [],
"total_score": 0,
"final_score": 0,
"tournaments_participated": 0
}
},
"completed_tournaments": [],
"league_finished": false
},
"archived_at": "2025-07-31T21:08:37.578593"
}
+224
View File
@@ -0,0 +1,224 @@
{
"league": {
"league_id": "league_20250731_210909",
"created_at": "2025-07-31T21:09:09.817078",
"tournament_type": "20_targets",
"total_tournaments": 6,
"current_tournament": 6,
"participants": {
"1": {
"name": "Domen Pleterski",
"joker_used": true,
"tournament_results": [
{
"tournament": 1,
"score": 207,
"participated": true
},
{
"tournament": 2,
"score": 205,
"participated": true
},
{
"tournament": 3,
"score": 177,
"participated": true
},
{
"tournament": 4,
"score": 0,
"participated": false,
"joker": true
},
{
"tournament": 5,
"score": 178,
"participated": true
},
{
"tournament": 6,
"score": 229,
"participated": true
}
],
"total_score": 996,
"final_score": 996,
"tournaments_participated": 5
},
"2": {
"name": "Nik Pleterski",
"joker_used": true,
"tournament_results": [
{
"tournament": 1,
"score": 228,
"participated": true
},
{
"tournament": 2,
"score": 154,
"participated": true
},
{
"tournament": 3,
"score": 0,
"participated": false,
"joker": true
},
{
"tournament": 4,
"score": 208,
"participated": true
},
{
"tournament": 5,
"score": 204,
"participated": true
},
{
"tournament": 6,
"score": 178,
"participated": true
}
],
"total_score": 972,
"final_score": 972,
"tournaments_participated": 5
},
"3": {
"name": "Ivan Tandler",
"joker_used": true,
"tournament_results": [
{
"tournament": 1,
"score": 217,
"participated": true
},
{
"tournament": 2,
"score": 217,
"participated": true
},
{
"tournament": 3,
"score": 0,
"participated": false,
"joker": true
},
{
"tournament": 4,
"score": 226,
"participated": true
},
{
"tournament": 5,
"score": 236,
"participated": true
},
{
"tournament": 6,
"score": 174,
"participated": true
}
],
"total_score": 1070,
"final_score": 1070,
"tournaments_participated": 5
},
"4": {
"name": "Mateja Pleterski",
"joker_used": true,
"tournament_results": [
{
"tournament": 1,
"score": 180,
"participated": true
},
{
"tournament": 2,
"score": 188,
"participated": true
},
{
"tournament": 3,
"score": 198,
"participated": true
},
{
"tournament": 4,
"score": 0,
"participated": false,
"joker": true
},
{
"tournament": 5,
"score": 224,
"participated": true
},
{
"tournament": 6,
"score": 173,
"participated": true
}
],
"total_score": 963,
"final_score": 963,
"tournaments_participated": 5
}
},
"completed_tournaments": [
{
"tournament_number": 1,
"finished_at": "2025-07-31T21:09:20.146965",
"results_summary": {
"participants": 4,
"total_shots": 160
}
},
{
"tournament_number": 2,
"finished_at": "2025-07-31T21:09:31.705757",
"results_summary": {
"participants": 4,
"total_shots": 160
}
},
{
"tournament_number": 3,
"finished_at": "2025-07-31T21:09:45.470818",
"results_summary": {
"participants": 2,
"total_shots": 80
}
},
{
"tournament_number": 4,
"finished_at": "2025-07-31T21:09:57.241356",
"results_summary": {
"participants": 2,
"total_shots": 80
}
},
{
"tournament_number": 5,
"finished_at": "2025-07-31T21:10:08.321671",
"results_summary": {
"participants": 4,
"total_shots": 160
}
},
{
"tournament_number": 6,
"finished_at": "2025-07-31T21:10:20.174190",
"results_summary": {
"participants": 4,
"total_shots": 160
}
}
],
"league_finished": true,
"finished_at": "2025-07-31T21:10:20.174192"
},
"archived_at": "2025-07-31T21:10:20.174477"
}
+224
View File
@@ -0,0 +1,224 @@
{
"league": {
"league_id": "league_20250731_212304",
"created_at": "2025-07-31T21:23:04.032473",
"tournament_type": "20_targets",
"total_tournaments": 6,
"current_tournament": 6,
"participants": {
"1": {
"name": "Domen Pleterski",
"joker_used": true,
"tournament_results": [
{
"tournament": 1,
"score": 215,
"participated": true
},
{
"tournament": 2,
"score": 0,
"participated": false,
"joker": true
},
{
"tournament": 3,
"score": 202,
"participated": true
},
{
"tournament": 4,
"score": 193,
"participated": true
},
{
"tournament": 5,
"score": 225,
"participated": true
},
{
"tournament": 6,
"score": 210,
"participated": true
}
],
"total_score": 1045,
"final_score": 1045,
"tournaments_participated": 5
},
"2": {
"name": "Nik Pleterski",
"joker_used": true,
"tournament_results": [
{
"tournament": 1,
"score": 219,
"participated": true
},
{
"tournament": 2,
"score": 196,
"participated": true
},
{
"tournament": 3,
"score": 213,
"participated": true
},
{
"tournament": 4,
"score": 0,
"participated": false,
"joker": true
},
{
"tournament": 5,
"score": 227,
"participated": true
},
{
"tournament": 6,
"score": 181,
"participated": true
}
],
"total_score": 1036,
"final_score": 1036,
"tournaments_participated": 5
},
"3": {
"name": "Ivan Tandler",
"joker_used": true,
"tournament_results": [
{
"tournament": 1,
"score": 171,
"participated": true
},
{
"tournament": 2,
"score": 216,
"participated": true
},
{
"tournament": 3,
"score": 0,
"participated": false,
"joker": true
},
{
"tournament": 4,
"score": 222,
"participated": true
},
{
"tournament": 5,
"score": 210,
"participated": true
},
{
"tournament": 6,
"score": 213,
"participated": true
}
],
"total_score": 1032,
"final_score": 1032,
"tournaments_participated": 5
},
"4": {
"name": "Mateja Pleterski",
"joker_used": true,
"tournament_results": [
{
"tournament": 1,
"score": 182,
"participated": true
},
{
"tournament": 2,
"score": 155,
"participated": true
},
{
"tournament": 3,
"score": 211,
"participated": true
},
{
"tournament": 4,
"score": 203,
"participated": true
},
{
"tournament": 5,
"score": 0,
"participated": false,
"joker": true
},
{
"tournament": 6,
"score": 206,
"participated": true
}
],
"total_score": 957,
"final_score": 957,
"tournaments_participated": 5
}
},
"completed_tournaments": [
{
"tournament_number": 1,
"finished_at": "2025-07-31T21:23:14.521653",
"results_summary": {
"participants": 4,
"total_shots": 160
}
},
{
"tournament_number": 2,
"finished_at": "2025-07-31T21:23:27.643672",
"results_summary": {
"participants": 3,
"total_shots": 120
}
},
{
"tournament_number": 3,
"finished_at": "2025-07-31T21:23:39.615988",
"results_summary": {
"participants": 3,
"total_shots": 120
}
},
{
"tournament_number": 4,
"finished_at": "2025-07-31T21:23:49.593503",
"results_summary": {
"participants": 3,
"total_shots": 120
}
},
{
"tournament_number": 5,
"finished_at": "2025-07-31T21:23:59.554536",
"results_summary": {
"participants": 3,
"total_shots": 120
}
},
{
"tournament_number": 6,
"finished_at": "2025-07-31T21:24:11.205590",
"results_summary": {
"participants": 4,
"total_shots": 160
}
}
],
"league_finished": true,
"finished_at": "2025-07-31T21:24:11.205593"
},
"archived_at": "2025-07-31T21:24:11.206059"
}
+224
View File
@@ -0,0 +1,224 @@
{
"league": {
"league_id": "league_20250731_212304",
"created_at": "2025-07-31T21:23:04.032473",
"tournament_type": "20_targets",
"total_tournaments": 6,
"current_tournament": 6,
"participants": {
"1": {
"name": "Domen Pleterski",
"joker_used": true,
"tournament_results": [
{
"tournament": 1,
"score": 215,
"participated": true
},
{
"tournament": 2,
"score": 0,
"participated": false,
"joker": true
},
{
"tournament": 3,
"score": 202,
"participated": true
},
{
"tournament": 4,
"score": 193,
"participated": true
},
{
"tournament": 5,
"score": 225,
"participated": true
},
{
"tournament": 6,
"score": 210,
"participated": true
}
],
"total_score": 1045,
"final_score": 1045,
"tournaments_participated": 5
},
"2": {
"name": "Nik Pleterski",
"joker_used": true,
"tournament_results": [
{
"tournament": 1,
"score": 219,
"participated": true
},
{
"tournament": 2,
"score": 196,
"participated": true
},
{
"tournament": 3,
"score": 213,
"participated": true
},
{
"tournament": 4,
"score": 0,
"participated": false,
"joker": true
},
{
"tournament": 5,
"score": 227,
"participated": true
},
{
"tournament": 6,
"score": 181,
"participated": true
}
],
"total_score": 1036,
"final_score": 1036,
"tournaments_participated": 5
},
"3": {
"name": "Ivan Tandler",
"joker_used": true,
"tournament_results": [
{
"tournament": 1,
"score": 171,
"participated": true
},
{
"tournament": 2,
"score": 216,
"participated": true
},
{
"tournament": 3,
"score": 0,
"participated": false,
"joker": true
},
{
"tournament": 4,
"score": 222,
"participated": true
},
{
"tournament": 5,
"score": 210,
"participated": true
},
{
"tournament": 6,
"score": 213,
"participated": true
}
],
"total_score": 1032,
"final_score": 1032,
"tournaments_participated": 5
},
"4": {
"name": "Mateja Pleterski",
"joker_used": true,
"tournament_results": [
{
"tournament": 1,
"score": 182,
"participated": true
},
{
"tournament": 2,
"score": 155,
"participated": true
},
{
"tournament": 3,
"score": 211,
"participated": true
},
{
"tournament": 4,
"score": 203,
"participated": true
},
{
"tournament": 5,
"score": 0,
"participated": false,
"joker": true
},
{
"tournament": 6,
"score": 206,
"participated": true
}
],
"total_score": 957,
"final_score": 957,
"tournaments_participated": 5
}
},
"completed_tournaments": [
{
"tournament_number": 1,
"finished_at": "2025-07-31T21:23:14.521653",
"results_summary": {
"participants": 4,
"total_shots": 160
}
},
{
"tournament_number": 2,
"finished_at": "2025-07-31T21:23:27.643672",
"results_summary": {
"participants": 3,
"total_shots": 120
}
},
{
"tournament_number": 3,
"finished_at": "2025-07-31T21:23:39.615988",
"results_summary": {
"participants": 3,
"total_shots": 120
}
},
{
"tournament_number": 4,
"finished_at": "2025-07-31T21:23:49.593503",
"results_summary": {
"participants": 3,
"total_shots": 120
}
},
{
"tournament_number": 5,
"finished_at": "2025-07-31T21:23:59.554536",
"results_summary": {
"participants": 3,
"total_shots": 120
}
},
{
"tournament_number": 6,
"finished_at": "2025-07-31T21:24:11.205590",
"results_summary": {
"participants": 4,
"total_shots": 160
}
}
],
"league_finished": true,
"finished_at": "2025-07-31T21:24:11.205593"
},
"archived_at": "2025-07-31T21:29:33.039147"
}
+223
View File
@@ -0,0 +1,223 @@
{
"league": {
"league_id": "league_20250801_094218",
"created_at": "2025-08-01T09:42:18.469415",
"tournament_type": "20_targets",
"total_tournaments": 6,
"current_tournament": 6,
"participants": {
"1": {
"name": "Domen Pleterski",
"joker_used": true,
"tournament_results": [
{
"tournament": 1,
"score": 170,
"participated": true
},
{
"tournament": 2,
"score": 171,
"participated": true
},
{
"tournament": 3,
"score": 230,
"participated": true
},
{
"tournament": 4,
"score": 180,
"participated": true
},
{
"tournament": 5,
"score": 219,
"participated": true
},
{
"tournament": 6,
"score": 0,
"participated": false,
"joker": true
}
],
"total_score": 970,
"final_score": 970,
"tournaments_participated": 5
},
"2": {
"name": "Nik Pleterski",
"joker_used": true,
"tournament_results": [
{
"tournament": 1,
"score": 236,
"participated": true
},
{
"tournament": 2,
"score": 173,
"participated": true
},
{
"tournament": 3,
"score": 202,
"participated": true
},
{
"tournament": 4,
"score": 166,
"participated": true
},
{
"tournament": 5,
"score": 227,
"participated": true
},
{
"tournament": 6,
"score": 0,
"participated": false,
"joker": true
}
],
"total_score": 1004,
"final_score": 1004,
"tournaments_participated": 5
},
"3": {
"name": "Ivan Tandler",
"joker_used": true,
"tournament_results": [
{
"tournament": 1,
"score": 210,
"participated": true
},
{
"tournament": 2,
"score": 226,
"participated": true
},
{
"tournament": 3,
"score": 195,
"participated": true
},
{
"tournament": 4,
"score": 175,
"participated": true
},
{
"tournament": 5,
"score": 210,
"participated": true
},
{
"tournament": 6,
"score": 0,
"participated": false,
"joker": true
}
],
"total_score": 1016,
"final_score": 1016,
"tournaments_participated": 5
},
"4": {
"name": "Mateja Pleterski",
"joker_used": false,
"tournament_results": [
{
"tournament": 1,
"score": 207,
"participated": true
},
{
"tournament": 2,
"score": 209,
"participated": true
},
{
"tournament": 3,
"score": 182,
"participated": true
},
{
"tournament": 4,
"score": 235,
"participated": true
},
{
"tournament": 5,
"score": 200,
"participated": true
},
{
"tournament": 6,
"score": 184,
"participated": true
}
],
"total_score": 1217,
"final_score": 1035,
"tournaments_participated": 6
}
},
"completed_tournaments": [
{
"tournament_number": 1,
"finished_at": "2025-08-01T09:42:27.658531",
"results_summary": {
"participants": 4,
"total_shots": 160
}
},
{
"tournament_number": 2,
"finished_at": "2025-08-01T09:51:01.385743",
"results_summary": {
"participants": 4,
"total_shots": 160
}
},
{
"tournament_number": 3,
"finished_at": "2025-08-01T09:51:13.761396",
"results_summary": {
"participants": 4,
"total_shots": 160
}
},
{
"tournament_number": 4,
"finished_at": "2025-08-01T09:51:27.188928",
"results_summary": {
"participants": 4,
"total_shots": 160
}
},
{
"tournament_number": 5,
"finished_at": "2025-08-01T09:51:37.088363",
"results_summary": {
"participants": 4,
"total_shots": 160
}
},
{
"tournament_number": 6,
"finished_at": "2025-08-01T09:51:46.713618",
"results_summary": {
"participants": 1,
"total_shots": 40
}
}
],
"league_finished": true,
"finished_at": "2025-08-01T09:51:46.713621"
},
"archived_at": "2025-08-01T09:51:46.713987"
}
+221
View File
@@ -0,0 +1,221 @@
{
"league": {
"league_id": "league_20250801_100941",
"created_at": "2025-08-01T10:09:41.478656",
"tournament_type": "20_targets",
"total_tournaments": 6,
"current_tournament": 6,
"participants": {
"1": {
"name": "Domen Pleterski",
"joker_used": true,
"tournament_results": [
{
"tournament": 1,
"score": 0,
"participated": false,
"joker": true
},
{
"tournament": 2,
"score": 167,
"participated": true
},
{
"tournament": 3,
"score": 193,
"participated": true
},
{
"tournament": 4,
"score": 181,
"participated": true
},
{
"tournament": 5,
"score": 190,
"participated": true
},
{
"tournament": 6,
"score": 219,
"participated": true
}
],
"total_score": 950,
"final_score": 950,
"tournaments_participated": 5
},
"2": {
"name": "Nik Pleterski",
"joker_used": false,
"tournament_results": [
{
"tournament": 1,
"score": 238,
"participated": true
},
{
"tournament": 2,
"score": 239,
"participated": true
},
{
"tournament": 3,
"score": 203,
"participated": true
},
{
"tournament": 4,
"score": 218,
"participated": true
},
{
"tournament": 5,
"score": 182,
"participated": true
},
{
"tournament": 6,
"score": 189,
"participated": true
}
],
"total_score": 1269,
"final_score": 1087,
"tournaments_participated": 6
},
"3": {
"name": "Ivan Tandler",
"joker_used": false,
"tournament_results": [
{
"tournament": 1,
"score": 183,
"participated": true
},
{
"tournament": 2,
"score": 177,
"participated": true
},
{
"tournament": 3,
"score": 177,
"participated": true
},
{
"tournament": 4,
"score": 201,
"participated": true
},
{
"tournament": 5,
"score": 208,
"participated": true
},
{
"tournament": 6,
"score": 189,
"participated": true
}
],
"total_score": 1135,
"final_score": 958,
"tournaments_participated": 6
},
"4": {
"name": "Mateja Pleterski",
"joker_used": false,
"tournament_results": [
{
"tournament": 1,
"score": 174,
"participated": true
},
{
"tournament": 2,
"score": 192,
"participated": true
},
{
"tournament": 3,
"score": 195,
"participated": true
},
{
"tournament": 4,
"score": 179,
"participated": true
},
{
"tournament": 5,
"score": 199,
"participated": true
},
{
"tournament": 6,
"score": 212,
"participated": true
}
],
"total_score": 1151,
"final_score": 977,
"tournaments_participated": 6
}
},
"completed_tournaments": [
{
"tournament_number": 1,
"finished_at": "2025-08-01T10:09:50.293741",
"results_summary": {
"participants": 3,
"total_shots": 120
}
},
{
"tournament_number": 2,
"finished_at": "2025-08-01T10:10:01.727450",
"results_summary": {
"participants": 4,
"total_shots": 160
}
},
{
"tournament_number": 3,
"finished_at": "2025-08-01T10:10:14.615370",
"results_summary": {
"participants": 4,
"total_shots": 160
}
},
{
"tournament_number": 4,
"finished_at": "2025-08-01T10:10:24.445436",
"results_summary": {
"participants": 4,
"total_shots": 160
}
},
{
"tournament_number": 5,
"finished_at": "2025-08-01T10:10:34.780992",
"results_summary": {
"participants": 4,
"total_shots": 160
}
},
{
"tournament_number": 6,
"finished_at": "2025-08-01T10:10:45.109247",
"results_summary": {
"participants": 4,
"total_shots": 160
}
}
],
"league_finished": true,
"finished_at": "2025-08-01T10:10:45.109249"
},
"archived_at": "2025-08-01T10:10:45.109575"
}
@@ -0,0 +1,86 @@
{
"league": {
"league_id": "league_20250802_151950",
"created_at": "2025-08-02T15:19:50.435781",
"tournament_type": "20_targets",
"total_tournaments": 6,
"current_tournament": 1,
"participants": {
"1": {
"name": "Domen Pleterski",
"joker_used": false,
"tournament_results": [],
"total_score": 0,
"final_score": 0,
"tournaments_participated": 0
},
"2": {
"name": "Nik Pleterski",
"joker_used": false,
"tournament_results": [],
"total_score": 0,
"final_score": 0,
"tournaments_participated": 0
},
"3": {
"name": "Ivan Tandler",
"joker_used": false,
"tournament_results": [],
"total_score": 0,
"final_score": 0,
"tournaments_participated": 0
},
"4": {
"name": "Mateja Pleterski",
"joker_used": false,
"tournament_results": [],
"total_score": 0,
"final_score": 0,
"tournaments_participated": 0
},
"5": {
"name": "Jo\u017ee Verhnjak",
"joker_used": false,
"tournament_results": [],
"total_score": 0,
"final_score": 0,
"tournaments_participated": 0
},
"6": {
"name": "Mateja Senica",
"joker_used": false,
"tournament_results": [],
"total_score": 0,
"final_score": 0,
"tournaments_participated": 0
},
"7": {
"name": "Branko Poker\u017enik",
"joker_used": false,
"tournament_results": [],
"total_score": 0,
"final_score": 0,
"tournaments_participated": 0
},
"8": {
"name": "Franc \u017digart",
"joker_used": false,
"tournament_results": [],
"total_score": 0,
"final_score": 0,
"tournaments_participated": 0
},
"9": {
"name": "Janez Bo\u017ei\u010d",
"joker_used": false,
"tournament_results": [],
"total_score": 0,
"final_score": 0,
"tournaments_participated": 0
}
},
"completed_tournaments": [],
"league_finished": false
},
"archived_at": "2025-08-02T15:22:40.774320"
}
+5 -10
View File
@@ -23,27 +23,27 @@
{ {
"id": 5, "id": 5,
"name": "Jo\u017ee Verhnjak", "name": "Jo\u017ee Verhnjak",
"enabled": false "enabled": true
}, },
{ {
"id": 6, "id": 6,
"name": "Mateja Senica", "name": "Mateja Senica",
"enabled": false "enabled": true
}, },
{ {
"id": 7, "id": 7,
"name": "Branko Poker\u017enik", "name": "Branko Poker\u017enik",
"enabled": false "enabled": true
}, },
{ {
"id": 8, "id": 8,
"name": "Franc \u017digart", "name": "Franc \u017digart",
"enabled": false "enabled": true
}, },
{ {
"id": 9, "id": 9,
"name": "Janez Bo\u017ei\u010d", "name": "Janez Bo\u017ei\u010d",
"enabled": false "enabled": true
}, },
{ {
"id": 10, "id": 10,
@@ -214,11 +214,6 @@
"id": 43, "id": 43,
"name": "Marko Pokr\u017enik", "name": "Marko Pokr\u017enik",
"enabled": false "enabled": false
},
{
"id": 44,
"name": "test",
"enabled": false
} }
] ]
} }

Before

Width:  |  Height:  |  Size: 136 KiB

After

Width:  |  Height:  |  Size: 136 KiB

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

+3
View File
@@ -0,0 +1,3 @@
{
"git.ignoreLimitWarning": true
}
@@ -12,7 +12,7 @@
html, body { html, body {
margin: 0; margin: 0;
padding: 0; padding: 0;
background: #f8f9fa; background: #f5f5f5;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
height: 100vh; height: 100vh;
overflow: hidden; overflow: hidden;
@@ -885,7 +885,7 @@
<body> <body>
<div class="navbar"> <div class="navbar">
<div class="navbar-brand"> <div class="navbar-brand">
<div class="navbar-title">🏆 League Champion Results</div> <div class="navbar-title">🏆 League Results</div>
</div> </div>
<div class="navbar-controls"> <div class="navbar-controls">
<a href="/" class="nav-btn">← Dashboard</a> <a href="/" class="nav-btn">← Dashboard</a>
@@ -1000,7 +1000,7 @@
<tr> <tr>
<td class="rank-cell rank-{{ participant.rank if participant.rank <= 3 else 'other' }}"> <td class="rank-cell rank-{{ participant.rank if participant.rank <= 3 else 'other' }}">
{{ participant.rank }} {{ participant.rank }}
{% if participant.rank == 1 %}🏆 {% if participant.rank == 1 %}🥇
{% elif participant.rank == 2 %}🥈 {% elif participant.rank == 2 %}🥈
{% elif participant.rank == 3 %}🥉 {% elif participant.rank == 3 %}🥉
{% endif %} {% endif %}
@@ -23,13 +23,14 @@
.navbar { .navbar {
background: white; background: white;
color: black; color: black;
padding: 15px 25px; padding: 10px 20px;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
border-bottom: 2px solid #ccc; border-bottom: 2px solid #ccc;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); height: 60px;
} box-sizing: border-box;
}
.navbar-title { .navbar-title {
font-size: 1.8rem; font-size: 1.8rem;
@@ -65,15 +66,26 @@
color: #007bff; color: #007bff;
} }
.nav-btn.primary { .nav-btn {
background: #007bff; background: #f8f9fa;
border-color: #0056b3; border: 2px solid #e9ecef;
color: white; cursor: pointer;
} padding: 12px 20px;
border-radius: 8px;
transition: all 0.2s ease;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
color: #333;
text-decoration: none;
font-weight: bold;
font-size: 0.9rem;
}
.nav-btn.primary:hover { .nav-btn:hover {
background: #0056b3; background: #e9ecef;
color: white; border-color: #007bff;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
transform: translateY(-1px);
color: #007bff;
} }
.nav-btn.secondary { .nav-btn.secondary {
@@ -452,8 +464,8 @@
<div class="navbar"> <div class="navbar">
<div class="navbar-title">👤 Player Analysis</div> <div class="navbar-title">👤 Player Analysis</div>
<div class="navbar-controls"> <div class="navbar-controls">
<a href="/archive" class="nav-btn secondary">📚 Back to Archive</a> <a href="/" class="nav-btn primary">← Dashboard</a>
<a href="/" class="nav-btn primary">🏠 Dashboard</a> <a href="/archive" class="nav-btn secondary">📚 Archive</a>
</div> </div>
</div> </div>
@@ -465,11 +477,6 @@
<div class="stat-value" id="totalPlayers">{{ players|length }}</div> <div class="stat-value" id="totalPlayers">{{ players|length }}</div>
<div class="stat-label">Total Players</div> <div class="stat-label">Total Players</div>
</div> </div>
<div class="stat-card">
<span class="stat-icon"></span>
<div class="stat-value" id="activePlayers">{{ players|selectattr('current_player')|list|length }}</div>
<div class="stat-label">Active Players</div>
</div>
<div class="stat-card"> <div class="stat-card">
<span class="stat-icon">📊</span> <span class="stat-icon">📊</span>
<div class="stat-value" id="avgTournaments">{{ overview_stats.avg_tournaments if overview_stats else 0 }}</div> <div class="stat-value" id="avgTournaments">{{ overview_stats.avg_tournaments if overview_stats else 0 }}</div>
@@ -497,12 +504,6 @@
<option value="total_leagues">Sort by Total Leagues</option> <option value="total_leagues">Sort by Total Leagues</option>
<option value="total_shots">Sort by Total Shots</option> <option value="total_shots">Sort by Total Shots</option>
</select> </select>
<div class="filter-buttons">
<button class="filter-btn active" data-filter="all">All Players</button>
<button class="filter-btn" data-filter="current">Current Players</button>
<button class="filter-btn" data-filter="archived">Archived Players</button>
</div>
</div> </div>
<!-- Players Grid --> <!-- Players Grid -->
@@ -14,7 +14,7 @@
body { body {
font-family: Arial, sans-serif; font-family: Arial, sans-serif;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); background: #f5f5f5;
height: 100vh; height: 100vh;
color: #333; color: #333;
overflow: hidden; overflow: hidden;
@@ -12,7 +12,7 @@
html, body { html, body {
margin: 0; margin: 0;
padding: 0; padding: 0;
background: #f8f9fa; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
height: 100vh; height: 100vh;
overflow: hidden; /* Prevent scrolling for TV display */ overflow: hidden; /* Prevent scrolling for TV display */
@@ -0,0 +1,677 @@
{
"tournament": {
"rounds": [
{
"round_number": 1,
"players": [
{
"id": 1,
"name": "Domen Pleterski",
"enabled": true
},
{
"id": 4,
"name": "Mateja Pleterski",
"enabled": true
},
{
"id": 25,
"name": "Andrej Herman",
"enabled": true
},
{
"id": 13,
"name": "Angelca Mrak",
"enabled": true
},
{
"id": 2,
"name": "Nik Pleterski",
"enabled": true
},
{
"id": 29,
"name": "Alen Kolar",
"enabled": true
}
],
"status": "pending"
},
{
"round_number": 2,
"players": [
{
"id": 3,
"name": "Ivan Tandler",
"enabled": true
}
],
"status": "waiting"
}
],
"created_at": "2025-07-30T20:31:14.939558",
"total_players": 7,
"total_rounds": 2,
"current_round": 1,
"tournament_type": "20_targets"
},
"results": {
"tournament_id": "2025-07-30T20:31:14.939558",
"tournament_type": "20_targets",
"participants": {
"1": {
"name": "Domen Pleterski",
"targets": {
"1": {
"shot1": 0,
"shot2": 4
},
"2": {
"shot1": 10,
"shot2": 0
},
"3": {
"shot1": 5,
"shot2": 4
},
"4": {
"shot1": 5,
"shot2": 2
},
"5": {
"shot1": 2,
"shot2": 9
},
"6": {
"shot1": 3,
"shot2": 6
},
"7": {
"shot1": 5,
"shot2": 0
},
"8": {
"shot1": 5,
"shot2": 7
},
"9": {
"shot1": 1,
"shot2": 7
},
"10": {
"shot1": 9,
"shot2": 8
},
"11": {
"shot1": 8,
"shot2": 7
},
"12": {
"shot1": 0,
"shot2": 7
},
"13": {
"shot1": 3,
"shot2": 7
},
"14": {
"shot1": 9,
"shot2": 7
},
"15": {
"shot1": 6,
"shot2": 1
},
"16": {
"shot1": 3,
"shot2": 5
},
"17": {
"shot1": 5,
"shot2": 6
},
"18": {
"shot1": 7,
"shot2": 7
},
"19": {
"shot1": 5,
"shot2": 7
},
"20": {
"shot1": 0,
"shot2": 10
}
},
"total_score": 202,
"completed": true
},
"4": {
"name": "Mateja Pleterski",
"targets": {
"1": {
"shot1": 1,
"shot2": 7
},
"2": {
"shot1": 2,
"shot2": 0
},
"3": {
"shot1": 7,
"shot2": 7
},
"4": {
"shot1": 3,
"shot2": 7
},
"5": {
"shot1": 0,
"shot2": 3
},
"6": {
"shot1": 3,
"shot2": 2
},
"7": {
"shot1": 1,
"shot2": 0
},
"8": {
"shot1": 5,
"shot2": 9
},
"9": {
"shot1": 2,
"shot2": 2
},
"10": {
"shot1": 3,
"shot2": 1
},
"11": {
"shot1": 1,
"shot2": 10
},
"12": {
"shot1": 1,
"shot2": 9
},
"13": {
"shot1": 4,
"shot2": 1
},
"14": {
"shot1": 3,
"shot2": 2
},
"15": {
"shot1": 2,
"shot2": 7
},
"16": {
"shot1": 1,
"shot2": 10
},
"17": {
"shot1": 2,
"shot2": 9
},
"18": {
"shot1": 4,
"shot2": 6
},
"19": {
"shot1": 6,
"shot2": 5
},
"20": {
"shot1": 1,
"shot2": 6
}
},
"total_score": 155,
"completed": true
},
"25": {
"name": "Andrej Herman",
"targets": {
"1": {
"shot1": 10,
"shot2": 8
},
"2": {
"shot1": 3,
"shot2": 2
},
"3": {
"shot1": 9,
"shot2": 1
},
"4": {
"shot1": 2,
"shot2": 9
},
"5": {
"shot1": 3,
"shot2": 6
},
"6": {
"shot1": 6,
"shot2": 9
},
"7": {
"shot1": 9,
"shot2": 0
},
"8": {
"shot1": 7,
"shot2": 2
},
"9": {
"shot1": 8,
"shot2": 7
},
"10": {
"shot1": 10,
"shot2": 4
},
"11": {
"shot1": 8,
"shot2": 1
},
"12": {
"shot1": 10,
"shot2": 3
},
"13": {
"shot1": 3,
"shot2": 10
},
"14": {
"shot1": 1,
"shot2": 7
},
"15": {
"shot1": 2,
"shot2": 5
},
"16": {
"shot1": 4,
"shot2": 2
},
"17": {
"shot1": 6,
"shot2": 8
},
"18": {
"shot1": 10,
"shot2": 2
},
"19": {
"shot1": 1,
"shot2": 3
},
"20": {
"shot1": 5,
"shot2": 3
}
},
"total_score": 209,
"completed": true
},
"13": {
"name": "Angelca Mrak",
"targets": {
"1": {
"shot1": 4,
"shot2": 6
},
"2": {
"shot1": 5,
"shot2": 4
},
"3": {
"shot1": 1,
"shot2": 8
},
"4": {
"shot1": 4,
"shot2": 6
},
"5": {
"shot1": 10,
"shot2": 8
},
"6": {
"shot1": 7,
"shot2": 1
},
"7": {
"shot1": 4,
"shot2": 8
},
"8": {
"shot1": 10,
"shot2": 0
},
"9": {
"shot1": 8,
"shot2": 0
},
"10": {
"shot1": 5,
"shot2": 5
},
"11": {
"shot1": 7,
"shot2": 7
},
"12": {
"shot1": 1,
"shot2": 10
},
"13": {
"shot1": 9,
"shot2": 3
},
"14": {
"shot1": 9,
"shot2": 8
},
"15": {
"shot1": 5,
"shot2": 7
},
"16": {
"shot1": 1,
"shot2": 4
},
"17": {
"shot1": 8,
"shot2": 6
},
"18": {
"shot1": 7,
"shot2": 3
},
"19": {
"shot1": 7,
"shot2": 9
},
"20": {
"shot1": 6,
"shot2": 5
}
},
"total_score": 226,
"completed": true
},
"2": {
"name": "Nik Pleterski",
"targets": {
"1": {
"shot1": 0,
"shot2": 3
},
"2": {
"shot1": 10,
"shot2": 3
},
"3": {
"shot1": 0,
"shot2": 1
},
"4": {
"shot1": 7,
"shot2": 6
},
"5": {
"shot1": 1,
"shot2": 4
},
"6": {
"shot1": 6,
"shot2": 1
},
"7": {
"shot1": 7,
"shot2": 9
},
"8": {
"shot1": 2,
"shot2": 5
},
"9": {
"shot1": 8,
"shot2": 10
},
"10": {
"shot1": 6,
"shot2": 5
},
"11": {
"shot1": 9,
"shot2": 6
},
"12": {
"shot1": 10,
"shot2": 9
},
"13": {
"shot1": 4,
"shot2": 7
},
"14": {
"shot1": 4,
"shot2": 0
},
"15": {
"shot1": 3,
"shot2": 8
},
"16": {
"shot1": 8,
"shot2": 9
},
"17": {
"shot1": 8,
"shot2": 7
},
"18": {
"shot1": 10,
"shot2": 7
},
"19": {
"shot1": 1,
"shot2": 4
},
"20": {
"shot1": 2,
"shot2": 9
}
},
"total_score": 219,
"completed": true
},
"29": {
"name": "Alen Kolar",
"targets": {
"1": {
"shot1": 5,
"shot2": 7
},
"2": {
"shot1": 2,
"shot2": 5
},
"3": {
"shot1": 8,
"shot2": 10
},
"4": {
"shot1": 8,
"shot2": 2
},
"5": {
"shot1": 4,
"shot2": 3
},
"6": {
"shot1": 0,
"shot2": 4
},
"7": {
"shot1": 5,
"shot2": 1
},
"8": {
"shot1": 9,
"shot2": 0
},
"9": {
"shot1": 8,
"shot2": 6
},
"10": {
"shot1": 1,
"shot2": 4
},
"11": {
"shot1": 2,
"shot2": 10
},
"12": {
"shot1": 10,
"shot2": 2
},
"13": {
"shot1": 4,
"shot2": 0
},
"14": {
"shot1": 10,
"shot2": 8
},
"15": {
"shot1": 4,
"shot2": 1
},
"16": {
"shot1": 5,
"shot2": 5
},
"17": {
"shot1": 10,
"shot2": 1
},
"18": {
"shot1": 7,
"shot2": 2
},
"19": {
"shot1": 4,
"shot2": 3
},
"20": {
"shot1": 2,
"shot2": 6
}
},
"total_score": 188,
"completed": true
},
"3": {
"name": "Ivan Tandler",
"targets": {
"1": {
"shot1": 3,
"shot2": 4
},
"2": {
"shot1": 6,
"shot2": 0
},
"3": {
"shot1": 2,
"shot2": 3
},
"4": {
"shot1": 9,
"shot2": 5
},
"5": {
"shot1": 0,
"shot2": 9
},
"6": {
"shot1": 2,
"shot2": 10
},
"7": {
"shot1": 1,
"shot2": 5
},
"8": {
"shot1": 5,
"shot2": 2
},
"9": {
"shot1": 0,
"shot2": 8
},
"10": {
"shot1": 10,
"shot2": 2
},
"11": {
"shot1": 7,
"shot2": 9
},
"12": {
"shot1": 1,
"shot2": 4
},
"13": {
"shot1": 5,
"shot2": 3
},
"14": {
"shot1": 7,
"shot2": 10
},
"15": {
"shot1": 10,
"shot2": 4
},
"16": {
"shot1": 4,
"shot2": 9
},
"17": {
"shot1": 6,
"shot2": 3
},
"18": {
"shot1": 6,
"shot2": 1
},
"19": {
"shot1": 2,
"shot2": 9
},
"20": {
"shot1": 3,
"shot2": 5
}
},
"total_score": 194,
"completed": true
}
},
"tournament_finished": true,
"created_at": "2025-07-30T20:31:14.939708",
"finished_at": "2025-07-30T20:31:59.935001"
},
"archived_at": "2025-07-30T20:31:59.935028"
}
@@ -0,0 +1,395 @@
{
"tournament": {
"rounds": [
{
"round_number": 1,
"players": [
{
"id": 4,
"name": "Mateja Pleterski",
"enabled": true
},
{
"id": 1,
"name": "Domen Pleterski",
"enabled": true
},
{
"id": 3,
"name": "Ivan Tandler",
"enabled": true
},
{
"id": 2,
"name": "Nik Pleterski",
"enabled": true
}
],
"status": "pending"
}
],
"created_at": "2025-07-31T21:17:48.015599",
"total_players": 4,
"total_rounds": 1,
"current_round": 1,
"tournament_type": "20_targets"
},
"results": {
"tournament_id": "2025-07-31T21:17:48.015599",
"tournament_type": "20_targets",
"participants": {
"4": {
"name": "Mateja Pleterski",
"targets": {
"1": {
"shot1": 6,
"shot2": 0
},
"2": {
"shot1": 9,
"shot2": 8
},
"3": {
"shot1": 3,
"shot2": 4
},
"4": {
"shot1": 5,
"shot2": 9
},
"5": {
"shot1": 9,
"shot2": 5
},
"6": {
"shot1": 4,
"shot2": 0
},
"7": {
"shot1": 5,
"shot2": 0
},
"8": {
"shot1": 0,
"shot2": 10
},
"9": {
"shot1": 5,
"shot2": 6
},
"10": {
"shot1": 1,
"shot2": 7
},
"11": {
"shot1": 4,
"shot2": 7
},
"12": {
"shot1": 10,
"shot2": 6
},
"13": {
"shot1": 6,
"shot2": 9
},
"14": {
"shot1": 9,
"shot2": 4
},
"15": {
"shot1": 4,
"shot2": 1
},
"16": {
"shot1": 4,
"shot2": 3
},
"17": {
"shot1": 10,
"shot2": 9
},
"18": {
"shot1": 0,
"shot2": 5
},
"19": {
"shot1": 3,
"shot2": 2
},
"20": {
"shot1": 10,
"shot2": 0
}
},
"total_score": 202,
"completed": true
},
"1": {
"name": "Domen Pleterski",
"targets": {
"1": {
"shot1": 1,
"shot2": 1
},
"2": {
"shot1": 6,
"shot2": 2
},
"3": {
"shot1": 7,
"shot2": 4
},
"4": {
"shot1": 1,
"shot2": 5
},
"5": {
"shot1": 7,
"shot2": 5
},
"6": {
"shot1": 6,
"shot2": 9
},
"7": {
"shot1": 9,
"shot2": 9
},
"8": {
"shot1": 8,
"shot2": 9
},
"9": {
"shot1": 7,
"shot2": 5
},
"10": {
"shot1": 0,
"shot2": 6
},
"11": {
"shot1": 9,
"shot2": 10
},
"12": {
"shot1": 6,
"shot2": 10
},
"13": {
"shot1": 6,
"shot2": 4
},
"14": {
"shot1": 3,
"shot2": 7
},
"15": {
"shot1": 4,
"shot2": 0
},
"16": {
"shot1": 9,
"shot2": 10
},
"17": {
"shot1": 0,
"shot2": 4
},
"18": {
"shot1": 9,
"shot2": 2
},
"19": {
"shot1": 6,
"shot2": 6
},
"20": {
"shot1": 5,
"shot2": 10
}
},
"total_score": 227,
"completed": true
},
"3": {
"name": "Ivan Tandler",
"targets": {
"1": {
"shot1": 6,
"shot2": 10
},
"2": {
"shot1": 2,
"shot2": 1
},
"3": {
"shot1": 9,
"shot2": 4
},
"4": {
"shot1": 9,
"shot2": 9
},
"5": {
"shot1": 3,
"shot2": 1
},
"6": {
"shot1": 3,
"shot2": 8
},
"7": {
"shot1": 6,
"shot2": 6
},
"8": {
"shot1": 0,
"shot2": 8
},
"9": {
"shot1": 2,
"shot2": 1
},
"10": {
"shot1": 4,
"shot2": 5
},
"11": {
"shot1": 1,
"shot2": 1
},
"12": {
"shot1": 3,
"shot2": 2
},
"13": {
"shot1": 4,
"shot2": 9
},
"14": {
"shot1": 5,
"shot2": 8
},
"15": {
"shot1": 6,
"shot2": 0
},
"16": {
"shot1": 4,
"shot2": 0
},
"17": {
"shot1": 3,
"shot2": 0
},
"18": {
"shot1": 3,
"shot2": 4
},
"19": {
"shot1": 3,
"shot2": 3
},
"20": {
"shot1": 8,
"shot2": 4
}
},
"total_score": 168,
"completed": true
},
"2": {
"name": "Nik Pleterski",
"targets": {
"1": {
"shot1": 8,
"shot2": 9
},
"2": {
"shot1": 9,
"shot2": 7
},
"3": {
"shot1": 1,
"shot2": 4
},
"4": {
"shot1": 3,
"shot2": 0
},
"5": {
"shot1": 4,
"shot2": 2
},
"6": {
"shot1": 8,
"shot2": 2
},
"7": {
"shot1": 1,
"shot2": 8
},
"8": {
"shot1": 3,
"shot2": 3
},
"9": {
"shot1": 0,
"shot2": 10
},
"10": {
"shot1": 5,
"shot2": 6
},
"11": {
"shot1": 0,
"shot2": 4
},
"12": {
"shot1": 5,
"shot2": 7
},
"13": {
"shot1": 4,
"shot2": 6
},
"14": {
"shot1": 4,
"shot2": 5
},
"15": {
"shot1": 2,
"shot2": 0
},
"16": {
"shot1": 6,
"shot2": 4
},
"17": {
"shot1": 7,
"shot2": 10
},
"18": {
"shot1": 7,
"shot2": 8
},
"19": {
"shot1": 2,
"shot2": 2
},
"20": {
"shot1": 1,
"shot2": 2
}
},
"total_score": 179,
"completed": true
}
},
"tournament_finished": true,
"created_at": "2025-07-31T21:17:48.015726",
"finished_at": "2025-07-31T21:17:55.687846"
},
"archived_at": "2025-07-31T21:17:55.687873"
}
@@ -0,0 +1,395 @@
{
"tournament": {
"rounds": [
{
"round_number": 1,
"players": [
{
"id": 4,
"name": "Mateja Pleterski",
"enabled": true
},
{
"id": 3,
"name": "Ivan Tandler",
"enabled": true
},
{
"id": 1,
"name": "Domen Pleterski",
"enabled": true
},
{
"id": 2,
"name": "Nik Pleterski",
"enabled": true
}
],
"status": "pending"
}
],
"created_at": "2025-07-31T21:20:52.615944",
"total_players": 4,
"total_rounds": 1,
"current_round": 1,
"tournament_type": "20_targets"
},
"results": {
"tournament_id": "2025-07-31T21:20:52.615944",
"tournament_type": "20_targets",
"participants": {
"4": {
"name": "Mateja Pleterski",
"targets": {
"1": {
"shot1": 5,
"shot2": 0
},
"2": {
"shot1": 3,
"shot2": 9
},
"3": {
"shot1": 3,
"shot2": 0
},
"4": {
"shot1": 4,
"shot2": 2
},
"5": {
"shot1": 2,
"shot2": 7
},
"6": {
"shot1": 1,
"shot2": 1
},
"7": {
"shot1": 4,
"shot2": 1
},
"8": {
"shot1": 6,
"shot2": 9
},
"9": {
"shot1": 10,
"shot2": 8
},
"10": {
"shot1": 4,
"shot2": 9
},
"11": {
"shot1": 4,
"shot2": 8
},
"12": {
"shot1": 5,
"shot2": 6
},
"13": {
"shot1": 5,
"shot2": 5
},
"14": {
"shot1": 8,
"shot2": 0
},
"15": {
"shot1": 0,
"shot2": 6
},
"16": {
"shot1": 4,
"shot2": 9
},
"17": {
"shot1": 3,
"shot2": 5
},
"18": {
"shot1": 6,
"shot2": 10
},
"19": {
"shot1": 0,
"shot2": 7
},
"20": {
"shot1": 9,
"shot2": 10
}
},
"total_score": 198,
"completed": true
},
"3": {
"name": "Ivan Tandler",
"targets": {
"1": {
"shot1": 2,
"shot2": 1
},
"2": {
"shot1": 1,
"shot2": 2
},
"3": {
"shot1": 7,
"shot2": 3
},
"4": {
"shot1": 6,
"shot2": 9
},
"5": {
"shot1": 5,
"shot2": 1
},
"6": {
"shot1": 4,
"shot2": 1
},
"7": {
"shot1": 4,
"shot2": 10
},
"8": {
"shot1": 2,
"shot2": 10
},
"9": {
"shot1": 9,
"shot2": 9
},
"10": {
"shot1": 4,
"shot2": 7
},
"11": {
"shot1": 5,
"shot2": 8
},
"12": {
"shot1": 0,
"shot2": 5
},
"13": {
"shot1": 1,
"shot2": 7
},
"14": {
"shot1": 0,
"shot2": 7
},
"15": {
"shot1": 1,
"shot2": 4
},
"16": {
"shot1": 8,
"shot2": 4
},
"17": {
"shot1": 6,
"shot2": 10
},
"18": {
"shot1": 1,
"shot2": 5
},
"19": {
"shot1": 3,
"shot2": 0
},
"20": {
"shot1": 4,
"shot2": 1
}
},
"total_score": 177,
"completed": true
},
"1": {
"name": "Domen Pleterski",
"targets": {
"1": {
"shot1": 8,
"shot2": 4
},
"2": {
"shot1": 3,
"shot2": 1
},
"3": {
"shot1": 9,
"shot2": 2
},
"4": {
"shot1": 8,
"shot2": 3
},
"5": {
"shot1": 5,
"shot2": 8
},
"6": {
"shot1": 6,
"shot2": 1
},
"7": {
"shot1": 2,
"shot2": 7
},
"8": {
"shot1": 2,
"shot2": 1
},
"9": {
"shot1": 2,
"shot2": 5
},
"10": {
"shot1": 3,
"shot2": 6
},
"11": {
"shot1": 1,
"shot2": 0
},
"12": {
"shot1": 2,
"shot2": 8
},
"13": {
"shot1": 1,
"shot2": 5
},
"14": {
"shot1": 4,
"shot2": 7
},
"15": {
"shot1": 3,
"shot2": 0
},
"16": {
"shot1": 0,
"shot2": 4
},
"17": {
"shot1": 0,
"shot2": 10
},
"18": {
"shot1": 7,
"shot2": 0
},
"19": {
"shot1": 10,
"shot2": 0
},
"20": {
"shot1": 1,
"shot2": 10
}
},
"total_score": 159,
"completed": true
},
"2": {
"name": "Nik Pleterski",
"targets": {
"1": {
"shot1": 1,
"shot2": 4
},
"2": {
"shot1": 7,
"shot2": 7
},
"3": {
"shot1": 9,
"shot2": 4
},
"4": {
"shot1": 6,
"shot2": 8
},
"5": {
"shot1": 9,
"shot2": 1
},
"6": {
"shot1": 0,
"shot2": 5
},
"7": {
"shot1": 4,
"shot2": 5
},
"8": {
"shot1": 3,
"shot2": 2
},
"9": {
"shot1": 10,
"shot2": 9
},
"10": {
"shot1": 10,
"shot2": 1
},
"11": {
"shot1": 10,
"shot2": 10
},
"12": {
"shot1": 9,
"shot2": 2
},
"13": {
"shot1": 3,
"shot2": 1
},
"14": {
"shot1": 7,
"shot2": 4
},
"15": {
"shot1": 1,
"shot2": 3
},
"16": {
"shot1": 6,
"shot2": 1
},
"17": {
"shot1": 5,
"shot2": 8
},
"18": {
"shot1": 6,
"shot2": 1
},
"19": {
"shot1": 5,
"shot2": 9
},
"20": {
"shot1": 9,
"shot2": 5
}
},
"total_score": 210,
"completed": true
}
},
"tournament_finished": true,
"created_at": "2025-07-31T21:20:52.616085",
"finished_at": "2025-07-31T21:21:00.405341"
},
"archived_at": "2025-07-31T21:21:00.405370"
}
@@ -0,0 +1,395 @@
{
"tournament": {
"rounds": [
{
"round_number": 1,
"players": [
{
"id": 1,
"name": "Domen Pleterski",
"enabled": true
},
{
"id": 4,
"name": "Mateja Pleterski",
"enabled": true
},
{
"id": 2,
"name": "Nik Pleterski",
"enabled": true
},
{
"id": 3,
"name": "Ivan Tandler",
"enabled": true
}
],
"status": "pending"
}
],
"created_at": "2025-08-01T10:09:09.443512",
"total_players": 4,
"total_rounds": 1,
"current_round": 1,
"tournament_type": "20_targets"
},
"results": {
"tournament_id": "2025-08-01T10:09:09.443512",
"tournament_type": "20_targets",
"participants": {
"1": {
"name": "Domen Pleterski",
"targets": {
"1": {
"shot1": 3,
"shot2": 1
},
"2": {
"shot1": 1,
"shot2": 6
},
"3": {
"shot1": 0,
"shot2": 6
},
"4": {
"shot1": 4,
"shot2": 4
},
"5": {
"shot1": 0,
"shot2": 7
},
"6": {
"shot1": 3,
"shot2": 0
},
"7": {
"shot1": 7,
"shot2": 3
},
"8": {
"shot1": 2,
"shot2": 6
},
"9": {
"shot1": 1,
"shot2": 3
},
"10": {
"shot1": 4,
"shot2": 9
},
"11": {
"shot1": 6,
"shot2": 9
},
"12": {
"shot1": 4,
"shot2": 8
},
"13": {
"shot1": 8,
"shot2": 8
},
"14": {
"shot1": 2,
"shot2": 1
},
"15": {
"shot1": 4,
"shot2": 8
},
"16": {
"shot1": 7,
"shot2": 8
},
"17": {
"shot1": 0,
"shot2": 6
},
"18": {
"shot1": 8,
"shot2": 4
},
"19": {
"shot1": 9,
"shot2": 9
},
"20": {
"shot1": 3,
"shot2": 6
}
},
"total_score": 188,
"completed": true
},
"4": {
"name": "Mateja Pleterski",
"targets": {
"1": {
"shot1": 2,
"shot2": 2
},
"2": {
"shot1": 6,
"shot2": 2
},
"3": {
"shot1": 2,
"shot2": 2
},
"4": {
"shot1": 7,
"shot2": 7
},
"5": {
"shot1": 8,
"shot2": 0
},
"6": {
"shot1": 0,
"shot2": 2
},
"7": {
"shot1": 9,
"shot2": 9
},
"8": {
"shot1": 0,
"shot2": 2
},
"9": {
"shot1": 0,
"shot2": 5
},
"10": {
"shot1": 3,
"shot2": 0
},
"11": {
"shot1": 8,
"shot2": 0
},
"12": {
"shot1": 8,
"shot2": 8
},
"13": {
"shot1": 4,
"shot2": 9
},
"14": {
"shot1": 8,
"shot2": 10
},
"15": {
"shot1": 7,
"shot2": 9
},
"16": {
"shot1": 5,
"shot2": 5
},
"17": {
"shot1": 10,
"shot2": 0
},
"18": {
"shot1": 0,
"shot2": 5
},
"19": {
"shot1": 3,
"shot2": 10
},
"20": {
"shot1": 4,
"shot2": 9
}
},
"total_score": 190,
"completed": true
},
"2": {
"name": "Nik Pleterski",
"targets": {
"1": {
"shot1": 10,
"shot2": 7
},
"2": {
"shot1": 0,
"shot2": 4
},
"3": {
"shot1": 3,
"shot2": 0
},
"4": {
"shot1": 7,
"shot2": 2
},
"5": {
"shot1": 7,
"shot2": 2
},
"6": {
"shot1": 0,
"shot2": 10
},
"7": {
"shot1": 10,
"shot2": 5
},
"8": {
"shot1": 3,
"shot2": 4
},
"9": {
"shot1": 1,
"shot2": 2
},
"10": {
"shot1": 4,
"shot2": 9
},
"11": {
"shot1": 0,
"shot2": 1
},
"12": {
"shot1": 10,
"shot2": 10
},
"13": {
"shot1": 6,
"shot2": 5
},
"14": {
"shot1": 9,
"shot2": 4
},
"15": {
"shot1": 6,
"shot2": 7
},
"16": {
"shot1": 3,
"shot2": 8
},
"17": {
"shot1": 3,
"shot2": 8
},
"18": {
"shot1": 10,
"shot2": 0
},
"19": {
"shot1": 3,
"shot2": 8
},
"20": {
"shot1": 6,
"shot2": 0
}
},
"total_score": 197,
"completed": true
},
"3": {
"name": "Ivan Tandler",
"targets": {
"1": {
"shot1": 9,
"shot2": 8
},
"2": {
"shot1": 2,
"shot2": 10
},
"3": {
"shot1": 4,
"shot2": 4
},
"4": {
"shot1": 8,
"shot2": 10
},
"5": {
"shot1": 4,
"shot2": 5
},
"6": {
"shot1": 10,
"shot2": 2
},
"7": {
"shot1": 7,
"shot2": 0
},
"8": {
"shot1": 5,
"shot2": 6
},
"9": {
"shot1": 7,
"shot2": 8
},
"10": {
"shot1": 10,
"shot2": 4
},
"11": {
"shot1": 0,
"shot2": 9
},
"12": {
"shot1": 2,
"shot2": 1
},
"13": {
"shot1": 10,
"shot2": 5
},
"14": {
"shot1": 1,
"shot2": 9
},
"15": {
"shot1": 0,
"shot2": 5
},
"16": {
"shot1": 5,
"shot2": 9
},
"17": {
"shot1": 9,
"shot2": 3
},
"18": {
"shot1": 1,
"shot2": 6
},
"19": {
"shot1": 7,
"shot2": 8
},
"20": {
"shot1": 1,
"shot2": 10
}
},
"total_score": 224,
"completed": true
}
},
"tournament_finished": true,
"created_at": "2025-08-01T10:09:09.443637",
"finished_at": "2025-08-01T10:09:15.692627"
},
"archived_at": "2025-08-01T10:09:15.692653"
}
@@ -0,0 +1,395 @@
{
"tournament": {
"rounds": [
{
"round_number": 1,
"players": [
{
"id": 2,
"name": "Nik Pleterski",
"enabled": true
},
{
"id": 4,
"name": "Mateja Pleterski",
"enabled": true
},
{
"id": 1,
"name": "Domen Pleterski",
"enabled": true
},
{
"id": 3,
"name": "Ivan Tandler",
"enabled": true
}
],
"status": "pending"
}
],
"created_at": "2025-08-01T10:55:32.808899",
"total_players": 4,
"total_rounds": 1,
"current_round": 1,
"tournament_type": "20_targets"
},
"results": {
"tournament_id": "2025-08-01T10:55:32.808899",
"tournament_type": "20_targets",
"participants": {
"2": {
"name": "Nik Pleterski",
"targets": {
"1": {
"shot1": 1,
"shot2": 6
},
"2": {
"shot1": 7,
"shot2": 8
},
"3": {
"shot1": 5,
"shot2": 9
},
"4": {
"shot1": 5,
"shot2": 8
},
"5": {
"shot1": 8,
"shot2": 8
},
"6": {
"shot1": 1,
"shot2": 7
},
"7": {
"shot1": 2,
"shot2": 6
},
"8": {
"shot1": 9,
"shot2": 10
},
"9": {
"shot1": 3,
"shot2": 7
},
"10": {
"shot1": 1,
"shot2": 2
},
"11": {
"shot1": 1,
"shot2": 0
},
"12": {
"shot1": 9,
"shot2": 9
},
"13": {
"shot1": 3,
"shot2": 8
},
"14": {
"shot1": 8,
"shot2": 3
},
"15": {
"shot1": 10,
"shot2": 1
},
"16": {
"shot1": 9,
"shot2": 6
},
"17": {
"shot1": 1,
"shot2": 0
},
"18": {
"shot1": 3,
"shot2": 6
},
"19": {
"shot1": 7,
"shot2": 2
},
"20": {
"shot1": 10,
"shot2": 1
}
},
"total_score": 210,
"completed": true
},
"4": {
"name": "Mateja Pleterski",
"targets": {
"1": {
"shot1": 9,
"shot2": 7
},
"2": {
"shot1": 1,
"shot2": 10
},
"3": {
"shot1": 7,
"shot2": 4
},
"4": {
"shot1": 9,
"shot2": 5
},
"5": {
"shot1": 0,
"shot2": 2
},
"6": {
"shot1": 8,
"shot2": 2
},
"7": {
"shot1": 3,
"shot2": 5
},
"8": {
"shot1": 1,
"shot2": 9
},
"9": {
"shot1": 4,
"shot2": 9
},
"10": {
"shot1": 6,
"shot2": 5
},
"11": {
"shot1": 3,
"shot2": 7
},
"12": {
"shot1": 5,
"shot2": 10
},
"13": {
"shot1": 3,
"shot2": 7
},
"14": {
"shot1": 4,
"shot2": 8
},
"15": {
"shot1": 7,
"shot2": 2
},
"16": {
"shot1": 10,
"shot2": 1
},
"17": {
"shot1": 2,
"shot2": 9
},
"18": {
"shot1": 6,
"shot2": 5
},
"19": {
"shot1": 4,
"shot2": 10
},
"20": {
"shot1": 3,
"shot2": 5
}
},
"total_score": 217,
"completed": true
},
"1": {
"name": "Domen Pleterski",
"targets": {
"1": {
"shot1": 10,
"shot2": 3
},
"2": {
"shot1": 1,
"shot2": 10
},
"3": {
"shot1": 6,
"shot2": 4
},
"4": {
"shot1": 6,
"shot2": 6
},
"5": {
"shot1": 6,
"shot2": 5
},
"6": {
"shot1": 7,
"shot2": 8
},
"7": {
"shot1": 0,
"shot2": 0
},
"8": {
"shot1": 7,
"shot2": 5
},
"9": {
"shot1": 1,
"shot2": 9
},
"10": {
"shot1": 5,
"shot2": 8
},
"11": {
"shot1": 10,
"shot2": 2
},
"12": {
"shot1": 9,
"shot2": 0
},
"13": {
"shot1": 5,
"shot2": 6
},
"14": {
"shot1": 9,
"shot2": 10
},
"15": {
"shot1": 6,
"shot2": 2
},
"16": {
"shot1": 7,
"shot2": 9
},
"17": {
"shot1": 1,
"shot2": 3
},
"18": {
"shot1": 4,
"shot2": 10
},
"19": {
"shot1": 10,
"shot2": 1
},
"20": {
"shot1": 5,
"shot2": 1
}
},
"total_score": 217,
"completed": true
},
"3": {
"name": "Ivan Tandler",
"targets": {
"1": {
"shot1": 4,
"shot2": 4
},
"2": {
"shot1": 5,
"shot2": 6
},
"3": {
"shot1": 5,
"shot2": 1
},
"4": {
"shot1": 10,
"shot2": 0
},
"5": {
"shot1": 9,
"shot2": 8
},
"6": {
"shot1": 2,
"shot2": 9
},
"7": {
"shot1": 3,
"shot2": 6
},
"8": {
"shot1": 2,
"shot2": 5
},
"9": {
"shot1": 1,
"shot2": 4
},
"10": {
"shot1": 1,
"shot2": 5
},
"11": {
"shot1": 9,
"shot2": 6
},
"12": {
"shot1": 3,
"shot2": 1
},
"13": {
"shot1": 5,
"shot2": 4
},
"14": {
"shot1": 4,
"shot2": 3
},
"15": {
"shot1": 0,
"shot2": 4
},
"16": {
"shot1": 5,
"shot2": 9
},
"17": {
"shot1": 4,
"shot2": 7
},
"18": {
"shot1": 0,
"shot2": 5
},
"19": {
"shot1": 1,
"shot2": 0
},
"20": {
"shot1": 3,
"shot2": 10
}
},
"total_score": 173,
"completed": true
}
},
"tournament_finished": true,
"created_at": "2025-08-01T10:55:32.809017",
"finished_at": "2025-08-01T10:55:39.802949"
},
"archived_at": "2025-08-01T10:55:39.802978"
}
@@ -0,0 +1,395 @@
{
"tournament": {
"rounds": [
{
"round_number": 1,
"players": [
{
"id": 2,
"name": "Nik Pleterski",
"enabled": true
},
{
"id": 3,
"name": "Ivan Tandler",
"enabled": true
},
{
"id": 1,
"name": "Domen Pleterski",
"enabled": true
},
{
"id": 4,
"name": "Mateja Pleterski",
"enabled": true
}
],
"status": "pending"
}
],
"created_at": "2025-08-01T12:11:54.601044",
"total_players": 4,
"total_rounds": 1,
"current_round": 1,
"tournament_type": "20_targets"
},
"results": {
"tournament_id": "2025-08-01T12:11:54.601044",
"tournament_type": "20_targets",
"participants": {
"2": {
"name": "Nik Pleterski",
"targets": {
"1": {
"shot1": 2,
"shot2": 4
},
"2": {
"shot1": 10,
"shot2": 8
},
"3": {
"shot1": 7,
"shot2": 9
},
"4": {
"shot1": 6,
"shot2": 6
},
"5": {
"shot1": 6,
"shot2": 5
},
"6": {
"shot1": 5,
"shot2": 6
},
"7": {
"shot1": 6,
"shot2": 10
},
"8": {
"shot1": 9,
"shot2": 1
},
"9": {
"shot1": 9,
"shot2": 5
},
"10": {
"shot1": 1,
"shot2": 3
},
"11": {
"shot1": 3,
"shot2": 6
},
"12": {
"shot1": 6,
"shot2": 0
},
"13": {
"shot1": 4,
"shot2": 4
},
"14": {
"shot1": 7,
"shot2": 5
},
"15": {
"shot1": 2,
"shot2": 6
},
"16": {
"shot1": 1,
"shot2": 6
},
"17": {
"shot1": 0,
"shot2": 2
},
"18": {
"shot1": 0,
"shot2": 6
},
"19": {
"shot1": 0,
"shot2": 6
},
"20": {
"shot1": 1,
"shot2": 1
}
},
"total_score": 184,
"completed": true
},
"3": {
"name": "Ivan Tandler",
"targets": {
"1": {
"shot1": 5,
"shot2": 8
},
"2": {
"shot1": 5,
"shot2": 6
},
"3": {
"shot1": 10,
"shot2": 9
},
"4": {
"shot1": 0,
"shot2": 5
},
"5": {
"shot1": 0,
"shot2": 0
},
"6": {
"shot1": 7,
"shot2": 2
},
"7": {
"shot1": 4,
"shot2": 6
},
"8": {
"shot1": 10,
"shot2": 8
},
"9": {
"shot1": 3,
"shot2": 3
},
"10": {
"shot1": 5,
"shot2": 2
},
"11": {
"shot1": 3,
"shot2": 8
},
"12": {
"shot1": 7,
"shot2": 9
},
"13": {
"shot1": 8,
"shot2": 0
},
"14": {
"shot1": 10,
"shot2": 9
},
"15": {
"shot1": 5,
"shot2": 7
},
"16": {
"shot1": 7,
"shot2": 4
},
"17": {
"shot1": 7,
"shot2": 7
},
"18": {
"shot1": 9,
"shot2": 8
},
"19": {
"shot1": 5,
"shot2": 4
},
"20": {
"shot1": 10,
"shot2": 3
}
},
"total_score": 228,
"completed": true
},
"1": {
"name": "Domen Pleterski",
"targets": {
"1": {
"shot1": 1,
"shot2": 9
},
"2": {
"shot1": 3,
"shot2": 8
},
"3": {
"shot1": 3,
"shot2": 9
},
"4": {
"shot1": 7,
"shot2": 10
},
"5": {
"shot1": 3,
"shot2": 2
},
"6": {
"shot1": 8,
"shot2": 4
},
"7": {
"shot1": 0,
"shot2": 0
},
"8": {
"shot1": 9,
"shot2": 5
},
"9": {
"shot1": 9,
"shot2": 2
},
"10": {
"shot1": 10,
"shot2": 5
},
"11": {
"shot1": 9,
"shot2": 4
},
"12": {
"shot1": 5,
"shot2": 2
},
"13": {
"shot1": 2,
"shot2": 5
},
"14": {
"shot1": 8,
"shot2": 10
},
"15": {
"shot1": 0,
"shot2": 7
},
"16": {
"shot1": 6,
"shot2": 0
},
"17": {
"shot1": 1,
"shot2": 1
},
"18": {
"shot1": 7,
"shot2": 3
},
"19": {
"shot1": 0,
"shot2": 7
},
"20": {
"shot1": 3,
"shot2": 2
}
},
"total_score": 189,
"completed": true
},
"4": {
"name": "Mateja Pleterski",
"targets": {
"1": {
"shot1": 10,
"shot2": 7
},
"2": {
"shot1": 2,
"shot2": 2
},
"3": {
"shot1": 6,
"shot2": 3
},
"4": {
"shot1": 2,
"shot2": 3
},
"5": {
"shot1": 6,
"shot2": 0
},
"6": {
"shot1": 1,
"shot2": 0
},
"7": {
"shot1": 4,
"shot2": 5
},
"8": {
"shot1": 6,
"shot2": 2
},
"9": {
"shot1": 6,
"shot2": 1
},
"10": {
"shot1": 0,
"shot2": 0
},
"11": {
"shot1": 10,
"shot2": 4
},
"12": {
"shot1": 3,
"shot2": 6
},
"13": {
"shot1": 8,
"shot2": 1
},
"14": {
"shot1": 4,
"shot2": 1
},
"15": {
"shot1": 8,
"shot2": 6
},
"16": {
"shot1": 1,
"shot2": 5
},
"17": {
"shot1": 0,
"shot2": 7
},
"18": {
"shot1": 3,
"shot2": 10
},
"19": {
"shot1": 2,
"shot2": 9
},
"20": {
"shot1": 8,
"shot2": 5
}
},
"total_score": 167,
"completed": true
}
},
"tournament_finished": true,
"created_at": "2025-08-01T12:11:54.601167",
"finished_at": "2025-08-01T12:13:18.305549"
},
"archived_at": "2025-08-01T12:13:18.305574"
}
@@ -0,0 +1,395 @@
{
"tournament": {
"rounds": [
{
"round_number": 1,
"players": [
{
"id": 4,
"name": "Mateja Pleterski",
"enabled": true
},
{
"id": 1,
"name": "Domen Pleterski",
"enabled": true
},
{
"id": 2,
"name": "Nik Pleterski",
"enabled": true
},
{
"id": 3,
"name": "Ivan Tandler",
"enabled": true
}
],
"status": "pending"
}
],
"created_at": "2025-08-01T12:27:31.489373",
"total_players": 4,
"total_rounds": 1,
"current_round": 1,
"tournament_type": "20_targets"
},
"results": {
"tournament_id": "2025-08-01T12:27:31.489373",
"tournament_type": "20_targets",
"participants": {
"4": {
"name": "Mateja Pleterski",
"targets": {
"1": {
"shot1": 4,
"shot2": 2
},
"2": {
"shot1": 7,
"shot2": 5
},
"3": {
"shot1": 10,
"shot2": 7
},
"4": {
"shot1": 8,
"shot2": 7
},
"5": {
"shot1": 3,
"shot2": 8
},
"6": {
"shot1": 10,
"shot2": 3
},
"7": {
"shot1": 6,
"shot2": 2
},
"8": {
"shot1": 1,
"shot2": 9
},
"9": {
"shot1": 0,
"shot2": 8
},
"10": {
"shot1": 7,
"shot2": 3
},
"11": {
"shot1": 7,
"shot2": 3
},
"12": {
"shot1": 6,
"shot2": 5
},
"13": {
"shot1": 7,
"shot2": 4
},
"14": {
"shot1": 0,
"shot2": 2
},
"15": {
"shot1": 0,
"shot2": 4
},
"16": {
"shot1": 9,
"shot2": 1
},
"17": {
"shot1": 1,
"shot2": 0
},
"18": {
"shot1": 6,
"shot2": 2
},
"19": {
"shot1": 5,
"shot2": 10
},
"20": {
"shot1": 6,
"shot2": 7
}
},
"total_score": 195,
"completed": true
},
"1": {
"name": "Domen Pleterski",
"targets": {
"1": {
"shot1": 10,
"shot2": 3
},
"2": {
"shot1": 3,
"shot2": 9
},
"3": {
"shot1": 2,
"shot2": 10
},
"4": {
"shot1": 10,
"shot2": 2
},
"5": {
"shot1": 10,
"shot2": 9
},
"6": {
"shot1": 1,
"shot2": 6
},
"7": {
"shot1": 9,
"shot2": 10
},
"8": {
"shot1": 4,
"shot2": 10
},
"9": {
"shot1": 0,
"shot2": 8
},
"10": {
"shot1": 7,
"shot2": 7
},
"11": {
"shot1": 7,
"shot2": 4
},
"12": {
"shot1": 2,
"shot2": 6
},
"13": {
"shot1": 4,
"shot2": 1
},
"14": {
"shot1": 6,
"shot2": 7
},
"15": {
"shot1": 9,
"shot2": 1
},
"16": {
"shot1": 1,
"shot2": 3
},
"17": {
"shot1": 5,
"shot2": 9
},
"18": {
"shot1": 4,
"shot2": 10
},
"19": {
"shot1": 5,
"shot2": 2
},
"20": {
"shot1": 2,
"shot2": 2
}
},
"total_score": 220,
"completed": true
},
"2": {
"name": "Nik Pleterski",
"targets": {
"1": {
"shot1": 10,
"shot2": 0
},
"2": {
"shot1": 1,
"shot2": 5
},
"3": {
"shot1": 10,
"shot2": 2
},
"4": {
"shot1": 0,
"shot2": 4
},
"5": {
"shot1": 7,
"shot2": 10
},
"6": {
"shot1": 2,
"shot2": 6
},
"7": {
"shot1": 0,
"shot2": 4
},
"8": {
"shot1": 9,
"shot2": 9
},
"9": {
"shot1": 2,
"shot2": 6
},
"10": {
"shot1": 4,
"shot2": 4
},
"11": {
"shot1": 2,
"shot2": 2
},
"12": {
"shot1": 9,
"shot2": 8
},
"13": {
"shot1": 8,
"shot2": 4
},
"14": {
"shot1": 9,
"shot2": 1
},
"15": {
"shot1": 2,
"shot2": 4
},
"16": {
"shot1": 4,
"shot2": 2
},
"17": {
"shot1": 2,
"shot2": 1
},
"18": {
"shot1": 0,
"shot2": 2
},
"19": {
"shot1": 10,
"shot2": 9
},
"20": {
"shot1": 3,
"shot2": 1
}
},
"total_score": 178,
"completed": true
},
"3": {
"name": "Ivan Tandler",
"targets": {
"1": {
"shot1": 10,
"shot2": 3
},
"2": {
"shot1": 3,
"shot2": 3
},
"3": {
"shot1": 9,
"shot2": 1
},
"4": {
"shot1": 6,
"shot2": 1
},
"5": {
"shot1": 9,
"shot2": 3
},
"6": {
"shot1": 0,
"shot2": 4
},
"7": {
"shot1": 4,
"shot2": 2
},
"8": {
"shot1": 9,
"shot2": 0
},
"9": {
"shot1": 9,
"shot2": 5
},
"10": {
"shot1": 1,
"shot2": 8
},
"11": {
"shot1": 10,
"shot2": 10
},
"12": {
"shot1": 7,
"shot2": 6
},
"13": {
"shot1": 7,
"shot2": 8
},
"14": {
"shot1": 3,
"shot2": 0
},
"15": {
"shot1": 10,
"shot2": 0
},
"16": {
"shot1": 10,
"shot2": 9
},
"17": {
"shot1": 10,
"shot2": 1
},
"18": {
"shot1": 1,
"shot2": 1
},
"19": {
"shot1": 0,
"shot2": 8
},
"20": {
"shot1": 1,
"shot2": 1
}
},
"total_score": 193,
"completed": true
}
},
"tournament_finished": true,
"created_at": "2025-08-01T12:27:31.489537",
"finished_at": "2025-08-01T12:28:35.501044"
},
"archived_at": "2025-08-01T12:28:35.501068"
}
@@ -0,0 +1,395 @@
{
"tournament": {
"rounds": [
{
"round_number": 1,
"players": [
{
"id": 2,
"name": "Nik Pleterski",
"enabled": true
},
{
"id": 3,
"name": "Ivan Tandler",
"enabled": true
},
{
"id": 4,
"name": "Mateja Pleterski",
"enabled": true
},
{
"id": 1,
"name": "Domen Pleterski",
"enabled": true
}
],
"status": "pending"
}
],
"created_at": "2025-08-01T12:41:43.726833",
"total_players": 4,
"total_rounds": 1,
"current_round": 1,
"tournament_type": "20_targets"
},
"results": {
"tournament_id": "2025-08-01T12:41:43.726833",
"tournament_type": "20_targets",
"participants": {
"2": {
"name": "Nik Pleterski",
"targets": {
"1": {
"shot1": 7,
"shot2": 6
},
"2": {
"shot1": 2,
"shot2": 0
},
"3": {
"shot1": 7,
"shot2": 1
},
"4": {
"shot1": 3,
"shot2": 4
},
"5": {
"shot1": 8,
"shot2": 1
},
"6": {
"shot1": 4,
"shot2": 1
},
"7": {
"shot1": 5,
"shot2": 5
},
"8": {
"shot1": 10,
"shot2": 6
},
"9": {
"shot1": 7,
"shot2": 0
},
"10": {
"shot1": 6,
"shot2": 2
},
"11": {
"shot1": 0,
"shot2": 2
},
"12": {
"shot1": 9,
"shot2": 9
},
"13": {
"shot1": 5,
"shot2": 2
},
"14": {
"shot1": 10,
"shot2": 6
},
"15": {
"shot1": 8,
"shot2": 3
},
"16": {
"shot1": 2,
"shot2": 0
},
"17": {
"shot1": 1,
"shot2": 7
},
"18": {
"shot1": 6,
"shot2": 7
},
"19": {
"shot1": 8,
"shot2": 0
},
"20": {
"shot1": 8,
"shot2": 4
}
},
"total_score": 182,
"completed": true
},
"3": {
"name": "Ivan Tandler",
"targets": {
"1": {
"shot1": 7,
"shot2": 8
},
"2": {
"shot1": 8,
"shot2": 1
},
"3": {
"shot1": 6,
"shot2": 6
},
"4": {
"shot1": 0,
"shot2": 4
},
"5": {
"shot1": 6,
"shot2": 8
},
"6": {
"shot1": 7,
"shot2": 2
},
"7": {
"shot1": 6,
"shot2": 2
},
"8": {
"shot1": 4,
"shot2": 7
},
"9": {
"shot1": 7,
"shot2": 0
},
"10": {
"shot1": 10,
"shot2": 5
},
"11": {
"shot1": 5,
"shot2": 0
},
"12": {
"shot1": 5,
"shot2": 9
},
"13": {
"shot1": 7,
"shot2": 0
},
"14": {
"shot1": 1,
"shot2": 10
},
"15": {
"shot1": 0,
"shot2": 4
},
"16": {
"shot1": 5,
"shot2": 9
},
"17": {
"shot1": 10,
"shot2": 10
},
"18": {
"shot1": 9,
"shot2": 5
},
"19": {
"shot1": 0,
"shot2": 10
},
"20": {
"shot1": 1,
"shot2": 4
}
},
"total_score": 208,
"completed": true
},
"4": {
"name": "Mateja Pleterski",
"targets": {
"1": {
"shot1": 8,
"shot2": 0
},
"2": {
"shot1": 3,
"shot2": 5
},
"3": {
"shot1": 8,
"shot2": 6
},
"4": {
"shot1": 2,
"shot2": 3
},
"5": {
"shot1": 5,
"shot2": 7
},
"6": {
"shot1": 4,
"shot2": 9
},
"7": {
"shot1": 9,
"shot2": 1
},
"8": {
"shot1": 2,
"shot2": 6
},
"9": {
"shot1": 0,
"shot2": 1
},
"10": {
"shot1": 7,
"shot2": 1
},
"11": {
"shot1": 1,
"shot2": 3
},
"12": {
"shot1": 4,
"shot2": 7
},
"13": {
"shot1": 3,
"shot2": 5
},
"14": {
"shot1": 3,
"shot2": 3
},
"15": {
"shot1": 7,
"shot2": 8
},
"16": {
"shot1": 1,
"shot2": 5
},
"17": {
"shot1": 9,
"shot2": 2
},
"18": {
"shot1": 4,
"shot2": 1
},
"19": {
"shot1": 2,
"shot2": 2
},
"20": {
"shot1": 8,
"shot2": 7
}
},
"total_score": 172,
"completed": true
},
"1": {
"name": "Domen Pleterski",
"targets": {
"1": {
"shot1": 8,
"shot2": 5
},
"2": {
"shot1": 8,
"shot2": 9
},
"3": {
"shot1": 1,
"shot2": 1
},
"4": {
"shot1": 4,
"shot2": 3
},
"5": {
"shot1": 6,
"shot2": 5
},
"6": {
"shot1": 2,
"shot2": 6
},
"7": {
"shot1": 5,
"shot2": 5
},
"8": {
"shot1": 1,
"shot2": 0
},
"9": {
"shot1": 8,
"shot2": 2
},
"10": {
"shot1": 2,
"shot2": 5
},
"11": {
"shot1": 4,
"shot2": 5
},
"12": {
"shot1": 2,
"shot2": 2
},
"13": {
"shot1": 9,
"shot2": 4
},
"14": {
"shot1": 6,
"shot2": 5
},
"15": {
"shot1": 8,
"shot2": 3
},
"16": {
"shot1": 9,
"shot2": 4
},
"17": {
"shot1": 8,
"shot2": 9
},
"18": {
"shot1": 5,
"shot2": 10
},
"19": {
"shot1": 2,
"shot2": 8
},
"20": {
"shot1": 5,
"shot2": 3
}
},
"total_score": 197,
"completed": true
}
},
"tournament_finished": true,
"created_at": "2025-08-01T12:41:43.726991",
"finished_at": "2025-08-01T12:42:35.668340"
},
"archived_at": "2025-08-01T12:42:35.668371"
}
@@ -0,0 +1,395 @@
{
"tournament": {
"rounds": [
{
"round_number": 1,
"players": [
{
"id": 1,
"name": "Domen Pleterski",
"enabled": true
},
{
"id": 2,
"name": "Nik Pleterski",
"enabled": true
},
{
"id": 3,
"name": "Ivan Tandler",
"enabled": true
},
{
"id": 4,
"name": "Mateja Pleterski",
"enabled": true
}
],
"status": "pending"
}
],
"created_at": "2025-08-01T18:28:29.670531",
"total_players": 4,
"total_rounds": 1,
"current_round": 1,
"tournament_type": "20_targets"
},
"results": {
"tournament_id": "2025-08-01T18:28:29.670531",
"tournament_type": "20_targets",
"participants": {
"1": {
"name": "Domen Pleterski",
"targets": {
"1": {
"shot1": 1,
"shot2": 7
},
"2": {
"shot1": 2,
"shot2": 2
},
"3": {
"shot1": 5,
"shot2": 0
},
"4": {
"shot1": 1,
"shot2": 5
},
"5": {
"shot1": 5,
"shot2": 1
},
"6": {
"shot1": 6,
"shot2": 2
},
"7": {
"shot1": 3,
"shot2": 7
},
"8": {
"shot1": 7,
"shot2": 6
},
"9": {
"shot1": 7,
"shot2": 1
},
"10": {
"shot1": 8,
"shot2": 1
},
"11": {
"shot1": 0,
"shot2": 7
},
"12": {
"shot1": 9,
"shot2": 5
},
"13": {
"shot1": 10,
"shot2": 4
},
"14": {
"shot1": 9,
"shot2": 8
},
"15": {
"shot1": 2,
"shot2": 1
},
"16": {
"shot1": 0,
"shot2": 0
},
"17": {
"shot1": 1,
"shot2": 0
},
"18": {
"shot1": 8,
"shot2": 10
},
"19": {
"shot1": 4,
"shot2": 2
},
"20": {
"shot1": 7,
"shot2": 2
}
},
"total_score": 166,
"completed": true
},
"2": {
"name": "Nik Pleterski",
"targets": {
"1": {
"shot1": 0,
"shot2": 0
},
"2": {
"shot1": 7,
"shot2": 5
},
"3": {
"shot1": 9,
"shot2": 7
},
"4": {
"shot1": 7,
"shot2": 7
},
"5": {
"shot1": 6,
"shot2": 0
},
"6": {
"shot1": 2,
"shot2": 3
},
"7": {
"shot1": 8,
"shot2": 0
},
"8": {
"shot1": 4,
"shot2": 1
},
"9": {
"shot1": 3,
"shot2": 10
},
"10": {
"shot1": 3,
"shot2": 10
},
"11": {
"shot1": 6,
"shot2": 2
},
"12": {
"shot1": 4,
"shot2": 3
},
"13": {
"shot1": 9,
"shot2": 4
},
"14": {
"shot1": 0,
"shot2": 0
},
"15": {
"shot1": 10,
"shot2": 9
},
"16": {
"shot1": 7,
"shot2": 5
},
"17": {
"shot1": 2,
"shot2": 6
},
"18": {
"shot1": 6,
"shot2": 9
},
"19": {
"shot1": 1,
"shot2": 3
},
"20": {
"shot1": 4,
"shot2": 0
}
},
"total_score": 182,
"completed": true
},
"3": {
"name": "Ivan Tandler",
"targets": {
"1": {
"shot1": 3,
"shot2": 3
},
"2": {
"shot1": 4,
"shot2": 8
},
"3": {
"shot1": 10,
"shot2": 3
},
"4": {
"shot1": 1,
"shot2": 8
},
"5": {
"shot1": 9,
"shot2": 6
},
"6": {
"shot1": 4,
"shot2": 10
},
"7": {
"shot1": 7,
"shot2": 7
},
"8": {
"shot1": 10,
"shot2": 9
},
"9": {
"shot1": 1,
"shot2": 8
},
"10": {
"shot1": 7,
"shot2": 6
},
"11": {
"shot1": 1,
"shot2": 8
},
"12": {
"shot1": 7,
"shot2": 5
},
"13": {
"shot1": 1,
"shot2": 2
},
"14": {
"shot1": 2,
"shot2": 9
},
"15": {
"shot1": 7,
"shot2": 6
},
"16": {
"shot1": 1,
"shot2": 10
},
"17": {
"shot1": 8,
"shot2": 9
},
"18": {
"shot1": 7,
"shot2": 7
},
"19": {
"shot1": 2,
"shot2": 7
},
"20": {
"shot1": 9,
"shot2": 7
}
},
"total_score": 239,
"completed": true
},
"4": {
"name": "Mateja Pleterski",
"targets": {
"1": {
"shot1": 10,
"shot2": 0
},
"2": {
"shot1": 3,
"shot2": 3
},
"3": {
"shot1": 5,
"shot2": 4
},
"4": {
"shot1": 9,
"shot2": 6
},
"5": {
"shot1": 5,
"shot2": 2
},
"6": {
"shot1": 10,
"shot2": 8
},
"7": {
"shot1": 3,
"shot2": 8
},
"8": {
"shot1": 1,
"shot2": 6
},
"9": {
"shot1": 8,
"shot2": 7
},
"10": {
"shot1": 7,
"shot2": 1
},
"11": {
"shot1": 1,
"shot2": 8
},
"12": {
"shot1": 5,
"shot2": 5
},
"13": {
"shot1": 6,
"shot2": 2
},
"14": {
"shot1": 2,
"shot2": 7
},
"15": {
"shot1": 3,
"shot2": 5
},
"16": {
"shot1": 9,
"shot2": 8
},
"17": {
"shot1": 3,
"shot2": 1
},
"18": {
"shot1": 2,
"shot2": 1
},
"19": {
"shot1": 1,
"shot2": 8
},
"20": {
"shot1": 3,
"shot2": 4
}
},
"total_score": 190,
"completed": true
}
},
"tournament_finished": true,
"created_at": "2025-08-01T18:28:29.670741",
"finished_at": "2025-08-01T18:28:48.756677"
},
"archived_at": "2025-08-01T18:28:48.756725"
}
@@ -0,0 +1,579 @@
{
"tournament": {
"rounds": [
{
"round_number": 1,
"players": [
{
"id": 2,
"name": "Player 2",
"enabled": true
},
{
"id": 1,
"name": "Player 1",
"enabled": true
},
{
"id": 4,
"name": "Player 4",
"enabled": true
},
{
"id": 6,
"name": "Player 6",
"enabled": true
},
{
"id": 3,
"name": "Player 3",
"enabled": true
},
{
"id": 5,
"name": "Player 5",
"enabled": true
}
],
"status": "pending"
}
],
"created_at": "2025-08-01T18:33:46.949558",
"total_players": 6,
"total_rounds": 1,
"current_round": 1,
"tournament_type": "20_targets"
},
"results": {
"tournament_id": "2025-08-01T18:33:46.949558",
"tournament_type": "20_targets",
"participants": {
"2": {
"name": "Player 2",
"targets": {
"1": {
"shot1": 4,
"shot2": 2
},
"2": {
"shot1": 5,
"shot2": 5
},
"3": {
"shot1": 4,
"shot2": 1
},
"4": {
"shot1": 6,
"shot2": 9
},
"5": {
"shot1": 5,
"shot2": 6
},
"6": {
"shot1": 5,
"shot2": 0
},
"7": {
"shot1": 8,
"shot2": 8
},
"8": {
"shot1": 4,
"shot2": 8
},
"9": {
"shot1": 2,
"shot2": 6
},
"10": {
"shot1": 10,
"shot2": 1
},
"11": {
"shot1": 10,
"shot2": 6
},
"12": {
"shot1": 10,
"shot2": 4
},
"13": {
"shot1": 4,
"shot2": 7
},
"14": {
"shot1": 8,
"shot2": 8
},
"15": {
"shot1": 9,
"shot2": 4
},
"16": {
"shot1": 8,
"shot2": 2
},
"17": {
"shot1": 2,
"shot2": 4
},
"18": {
"shot1": 7,
"shot2": 10
},
"19": {
"shot1": 8,
"shot2": 6
},
"20": {
"shot1": 6,
"shot2": 1
}
},
"total_score": 223,
"completed": true
},
"1": {
"name": "Player 1",
"targets": {
"1": {
"shot1": 2,
"shot2": 3
},
"2": {
"shot1": 7,
"shot2": 2
},
"3": {
"shot1": 5,
"shot2": 9
},
"4": {
"shot1": 9,
"shot2": 6
},
"5": {
"shot1": 7,
"shot2": 10
},
"6": {
"shot1": 8,
"shot2": 6
},
"7": {
"shot1": 4,
"shot2": 2
},
"8": {
"shot1": 6,
"shot2": 7
},
"9": {
"shot1": 10,
"shot2": 3
},
"10": {
"shot1": 2,
"shot2": 6
},
"11": {
"shot1": 9,
"shot2": 6
},
"12": {
"shot1": 5,
"shot2": 4
},
"13": {
"shot1": 1,
"shot2": 3
},
"14": {
"shot1": 6,
"shot2": 4
},
"15": {
"shot1": 2,
"shot2": 9
},
"16": {
"shot1": 8,
"shot2": 4
},
"17": {
"shot1": 6,
"shot2": 4
},
"18": {
"shot1": 0,
"shot2": 4
},
"19": {
"shot1": 8,
"shot2": 10
},
"20": {
"shot1": 5,
"shot2": 5
}
},
"total_score": 217,
"completed": true
},
"4": {
"name": "Player 4",
"targets": {
"1": {
"shot1": 10,
"shot2": 6
},
"2": {
"shot1": 9,
"shot2": 9
},
"3": {
"shot1": 10,
"shot2": 8
},
"4": {
"shot1": 9,
"shot2": 9
},
"5": {
"shot1": 1,
"shot2": 5
},
"6": {
"shot1": 5,
"shot2": 4
},
"7": {
"shot1": 0,
"shot2": 6
},
"8": {
"shot1": 2,
"shot2": 7
},
"9": {
"shot1": 10,
"shot2": 5
},
"10": {
"shot1": 2,
"shot2": 2
},
"11": {
"shot1": 7,
"shot2": 4
},
"12": {
"shot1": 10,
"shot2": 7
},
"13": {
"shot1": 10,
"shot2": 9
},
"14": {
"shot1": 6,
"shot2": 2
},
"15": {
"shot1": 8,
"shot2": 6
},
"16": {
"shot1": 10,
"shot2": 2
},
"17": {
"shot1": 9,
"shot2": 4
},
"18": {
"shot1": 1,
"shot2": 2
},
"19": {
"shot1": 1,
"shot2": 0
},
"20": {
"shot1": 7,
"shot2": 3
}
},
"total_score": 227,
"completed": true
},
"6": {
"name": "Player 6",
"targets": {
"1": {
"shot1": 9,
"shot2": 10
},
"2": {
"shot1": 7,
"shot2": 8
},
"3": {
"shot1": 7,
"shot2": 8
},
"4": {
"shot1": 8,
"shot2": 8
},
"5": {
"shot1": 2,
"shot2": 5
},
"6": {
"shot1": 4,
"shot2": 9
},
"7": {
"shot1": 10,
"shot2": 8
},
"8": {
"shot1": 10,
"shot2": 1
},
"9": {
"shot1": 7,
"shot2": 8
},
"10": {
"shot1": 7,
"shot2": 3
},
"11": {
"shot1": 10,
"shot2": 3
},
"12": {
"shot1": 4,
"shot2": 2
},
"13": {
"shot1": 1,
"shot2": 2
},
"14": {
"shot1": 7,
"shot2": 5
},
"15": {
"shot1": 7,
"shot2": 0
},
"16": {
"shot1": 9,
"shot2": 1
},
"17": {
"shot1": 7,
"shot2": 10
},
"18": {
"shot1": 1,
"shot2": 7
},
"19": {
"shot1": 5,
"shot2": 10
},
"20": {
"shot1": 10,
"shot2": 5
}
},
"total_score": 245,
"completed": true
},
"3": {
"name": "Player 3",
"targets": {
"1": {
"shot1": 4,
"shot2": 1
},
"2": {
"shot1": 2,
"shot2": 2
},
"3": {
"shot1": 6,
"shot2": 8
},
"4": {
"shot1": 2,
"shot2": 3
},
"5": {
"shot1": 2,
"shot2": 0
},
"6": {
"shot1": 6,
"shot2": 4
},
"7": {
"shot1": 5,
"shot2": 4
},
"8": {
"shot1": 8,
"shot2": 8
},
"9": {
"shot1": 4,
"shot2": 10
},
"10": {
"shot1": 0,
"shot2": 1
},
"11": {
"shot1": 3,
"shot2": 0
},
"12": {
"shot1": 0,
"shot2": 7
},
"13": {
"shot1": 9,
"shot2": 6
},
"14": {
"shot1": 8,
"shot2": 8
},
"15": {
"shot1": 2,
"shot2": 5
},
"16": {
"shot1": 3,
"shot2": 4
},
"17": {
"shot1": 3,
"shot2": 6
},
"18": {
"shot1": 9,
"shot2": 6
},
"19": {
"shot1": 0,
"shot2": 7
},
"20": {
"shot1": 6,
"shot2": 6
}
},
"total_score": 178,
"completed": true
},
"5": {
"name": "Player 5",
"targets": {
"1": {
"shot1": 2,
"shot2": 1
},
"2": {
"shot1": 9,
"shot2": 3
},
"3": {
"shot1": 6,
"shot2": 8
},
"4": {
"shot1": 1,
"shot2": 6
},
"5": {
"shot1": 0,
"shot2": 3
},
"6": {
"shot1": 4,
"shot2": 6
},
"7": {
"shot1": 6,
"shot2": 0
},
"8": {
"shot1": 9,
"shot2": 10
},
"9": {
"shot1": 3,
"shot2": 5
},
"10": {
"shot1": 2,
"shot2": 10
},
"11": {
"shot1": 6,
"shot2": 5
},
"12": {
"shot1": 7,
"shot2": 9
},
"13": {
"shot1": 6,
"shot2": 10
},
"14": {
"shot1": 5,
"shot2": 3
},
"15": {
"shot1": 9,
"shot2": 9
},
"16": {
"shot1": 0,
"shot2": 9
},
"17": {
"shot1": 8,
"shot2": 6
},
"18": {
"shot1": 10,
"shot2": 6
},
"19": {
"shot1": 1,
"shot2": 10
},
"20": {
"shot1": 3,
"shot2": 8
}
},
"total_score": 224,
"completed": true
}
},
"tournament_finished": true,
"created_at": "2025-08-01T18:33:46.949775",
"finished_at": "2025-08-01T18:34:40.747623"
},
"archived_at": "2025-08-01T18:34:40.747832"
}