Commit Graph

83 Commits

Author SHA1 Message Date
Daniel Schädler 3008b9fd50
TUR-137 add timer reasons 2026-04-28 12:28:01 +02:00
Daniel Schädler 68b72cc01a test: update beamer e2e contract 2026-04-26 23:45:35 +02:00
Daniel Schädler acdef9f5b4 feat(beamers): replace asset URLs with config
Add beamer config JSON, drop obsolete asset URL fields, and narrow display_state to the new beamer API states. Migration maps legacy display states to supported values and initializes config to {}.
2026-04-26 16:13:12 +02:00
Daniel Schädler e9ef73c230 refactor: rename timer db column 2026-04-24 11:39:26 +02:00
Daniel Schädler b0bbbb8ce5 Merge branch 'master' into 'codex/tur-55-tur-56-timer-websocket'
# Conflicts:
#   e2e/lib/action_cable_client.rb
#   tasks.py
2026-04-23 21:57:14 +00:00
Daniel Schädler afff813994 feat: add timer modes and websocket updates 2026-04-23 23:29:03 +02:00
Daniel Schädler b40e64cde8 feat: add manual team action list creation 2026-04-23 22:47:51 +02:00
Daniel Schädler 7151976d26 feat: add backend beamer live updates 2026-04-23 14:35:16 +02:00
Daniel Schädler e41ef870f9 Merge branch 'codex/TUR-80-team-action-lists' into 'master'
TUR-80 playoff token collection tracking

Closes TUR-80

See merge request turniere/turniere-backend!49
2026-04-23 11:46:41 +00:00
Daniel Schädler 883638f4fd feat: add websocket team action updates 2026-04-23 10:19:47 +02:00
Daniel Schädler ad96668a04 Merge branch 'TUR-52-backend-match-swap' into 'master'
TUR-52 backend match swap endpoint

Closes TUR-52

See merge request turniere/turniere-backend!48
2026-04-22 15:10:45 +00:00
Daniel Schädler 7d65e4df82 feat: track team action list completion 2026-04-22 16:51:17 +02:00
Daniel Schädler f3ef3f4373 refactor: simplify playoff loser lookup 2026-04-22 16:15:25 +02:00
Daniel Schädler 99538a3343 Add backend group match swap endpoint 2026-04-22 15:48:06 +02:00
Daniel Schädler 57aecd7cc5 feat: add third place playoff match 2026-04-22 15:46:48 +02:00
Daniel Schädler 8789c2cb2e Merge origin/master into follower sync 2026-04-16 15:54:32 +02:00
Daniel Schädler 761bb8daea Simplify default beamer handling 2026-04-16 13:02:40 +02:00
Tobias Huber 2ceba1dfcf Merge branch 'master' into TUR-32_backend-beamer 2026-04-16 08:11:02 +02:00
Daniel Schädler 07b7a78bd5 Merge origin/master into follower sync 2026-04-15 16:43:38 +02:00
Daniel Schädler ce7b5c5ac7 Fix match points specs 2026-04-15 11:22:55 +02:00
Daniel Schädler 2d273f067c Optimize tournament render hot path 2026-04-15 09:36:56 +02:00
Daniel Schädler 0ba86c84f0 Clear follower token on takeover 2026-04-14 18:29:30 +02:00
Daniel Schädler bbb1ad97ef Make follower sync asynchronous 2026-04-13 20:54:28 +02:00
Daniel Schädler 133ebae847 Add read-only tournament follower sync 2026-04-13 20:32:34 +02:00
Tobias Huber 85fce7faac add backend beamer 2026-04-13 20:01:48 +02:00
Daniel Schädler 4713a020fa Implement TUR-58 group stage decider matches 2026-04-12 19:13:52 +02:00
Daniel Schädler eedafe1276 Add ranking decision metadata for group scores 2026-04-12 17:47:28 +02:00
Daniel Schädler 7cef4a9b5e Fix group score direct comparison tiebreak 2026-04-12 17:03:33 +02:00
Daniel Schädler 79bafec693 Add advancing teams into tournaments show endpoint 2025-03-09 21:05:41 +01:00
Daniel Schädler 5d857c5d82 Remove position from comparison 2024-04-07 21:40:59 +02:00
Daniel Schädler 4a8cb71fc4 Add and calculate position to sort group_scores by 2024-04-07 21:17:45 +02:00
Daniel Schädler 1084d836c1 Implement sorting correctly with <=> operator 2024-04-07 18:07:55 +02:00
Daniel Schädler c3af6f9232
Rubocop -A 2021-08-15 14:31:50 +02:00
Daniel Schädler 33ccab8988 Return all matches also from groups 2019-10-26 00:32:14 +02:00
Daniel Schädler 77c76b7a31 Add matches method to tournament
The method collects all matches from all stages
2019-10-25 23:47:38 +02:00
Daniel Schädler 4e72d015ff Implement method to check if stage is over 2019-06-18 19:22:05 +02:00
Daniel Schädler c5780c2da3 Implement function to calculate the difference in points 2019-06-18 19:22:05 +02:00
Thor77 6640be1e9a Add devise confirmable to user model 2019-06-18 12:27:00 +02:00
Daniel Schädler 98319e9625 Assign :intermediate_stage to first stage if single_team matches present 2019-06-17 15:02:30 +02:00
Daniel Schädler 36db03293e Return a "winner" for :single_team matches 2019-06-17 15:02:30 +02:00
Thor77 f3431e8442
Add bet model
* has_many relations in all belonging models
* specs for relations in existing models
* association specs for bet model
2019-06-17 13:48:49 +02:00
Daniel Schädler 2e336262aa Add state to stage
This state is required to stop the group stage and trigger playoff
generation, it is (for now) irrelevant for anything other than that.
2019-06-13 13:21:24 +02:00
Daniel Schädler 4d5d7bc812 Only allow positive powers of two for playoff_teams_amount 2019-06-13 13:21:24 +02:00
Daniel Schädler 564cec2820 Add method to check if match_score is part of a group match 2019-06-05 09:49:21 +02:00
Daniel Schädler 752beefca6 Correctly handle matches that are not started yet 2019-06-05 09:49:21 +02:00
Daniel Schädler c1dc43948b Fix typo in received_points 2019-06-05 09:49:21 +02:00
Daniel Schädler bd0f8c7fd2 Replace guard clauses with ternary operator
@thor77 apparently thinks this is better then it was before.. i don't
really care so here we go ¯\_(ツ)_/¯
2019-06-05 09:49:20 +02:00
Daniel Schädler e868e936e4 Implement Methods returning points of teams per match
These methods return group_points scored_points and received_points
respectively when given a team that is present in the match
They return 0 when given a team that isn't contesting in that match
2019-06-05 09:26:11 +02:00
Daniel Schädler 2f77d2d25b Add winner method to match 2019-05-26 20:14:13 +02:00
Daniel Schädler 280b0c1dec Change status of Match to only represent being finished
The winner will be a attribute of the Match instead of something
that is written in its status.
2019-05-26 20:14:13 +02:00