Commit Graph

294 Commits

Author SHA1 Message Date
Daniel Schädler 26679d87c2 Add sync snapshot tracking 2026-04-14 22:36:39 +02:00
Daniel Schädler c4f182a6a8 Stabilize follow sync CI network checks 2026-04-14 22:11:34 +02:00
Daniel Schädler 4d9255354b Reset sync retries on new snapshots 2026-04-14 21:34:04 +02:00
Daniel Schädler 8bdd7fd1be Enqueue sync after transaction commit 2026-04-14 20:59:30 +02:00
Daniel Schädler 3cbeff617a Allow follower takeover updates 2026-04-14 20:11:42 +02:00
Daniel Schädler 0ba86c84f0 Clear follower token on takeover 2026-04-14 18:29:30 +02:00
Daniel Schädler 871ad84a48 Reload tournament before sync snapshot 2026-04-14 15:49:02 +02:00
Daniel Schädler 8ab53fa854 Fix follower sync E2E helper 2026-04-14 14:27:34 +02:00
Tobias Huber 58267b6b3a Fix timer timezone handling 2026-04-14 07:10:51 +02:00
Tobias Huber 19f744daeb Add Beamer entity with CRUD API and name-based lookup
New Beamer model scoped to tournaments for multi-projector display control.
Includes migration, validations, serializer, controller with by_name
fallback endpoint, routing, and full RSpec test coverage.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-14 07:10:44 +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
Daniel Schädler b02857782f Restore legacy 403 for unauthenticated match updates 2026-04-12 19:38:35 +02:00
Daniel Schädler 4713a020fa Implement TUR-58 group stage decider matches 2026-04-12 19:13:52 +02:00
Daniel Schädler 6d21dad5d7 Fix final match completion after group stage 2026-04-12 18:07:08 +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 c8b0f1a7a3 Syntax improvements 2025-03-16 12:41:47 +01:00
Daniel Schädler f00c5ac8dc Merge branch 'annotate_advancing_teams' into 'master'
Annotate advancing teams

See merge request turniere/turniere-backend!28
2025-03-14 14:23:58 +00:00
Daniel Schädler b1cc300d98 Merge branch 'first_vs_second_with_offset' into 'master'
First vs second with offset

See merge request turniere/turniere-backend!29
2025-03-14 12:35:17 +00:00
Daniel Schädler 34814a837a Merge remote-tracking branch 'origin/master' into annotate_advancing_teams 2025-03-14 13:27:03 +01:00
Daniel Schädler 963812cb0c Annotate advancing teams that advance from group stage 2025-03-14 13:23:10 +01:00
Daniel Schädler dd520089ec Fix missing stages and teams in tournaments show 2025-03-14 13:22:52 +01:00
Daniel Schädler f71c7ec57f Merge branch 'timer' into 'master'
Timer

See merge request turniere/turniere-backend!30
2025-03-14 12:00:29 +00:00
Daniel Schädler f7dc8411f4 Include timer_end in TournamentSerializer 2025-03-14 12:44:22 +01:00
Daniel Schädler fafc4d3937 Rubocop 2025-03-13 12:35:27 +01:00
Daniel Schädler 5ab18063dd Fix bug where uneven groups cause 500 when requesting beamer view 2025-03-13 12:34:05 +01:00
Daniel Schädler 16e65a3b03 Fix missing checks 2025-03-10 12:56:20 +01:00
Daniel Schädler 4d1e2c5164 Add option to also pass seconds to timer_end 2025-03-10 12:37:19 +01:00
Daniel Schädler 7b9a454cb6 Fix syntax in tournaments_controller.rb 2025-03-10 11:49:51 +01:00
Daniel Schädler 79bafec693 Add advancing teams into tournaments show endpoint 2025-03-09 21:05:41 +01:00
Daniel Schädler bb61d514a0 Fix Utils call 2025-03-09 19:34:15 +01:00
Daniel Schädler c5dd8beb00 Typo 2025-03-08 17:39:51 +01:00
Tobias Huber 3c1168212e add timer_end to tournaments model 2025-03-08 17:08:48 +01:00
Daniel Schädler cc04383191 Fix split and rotate in utils 2025-03-04 22:46:05 +01:00
Daniel Schädler 6fcdeac054 Move array splitting and rotating to utils 2025-03-04 21:34:16 +01:00
Tobias Huber fdfea9100d comments 2025-03-02 13:22:20 +01:00
Tobias Huber 5a7ff67e73 needs testing 2025-03-02 13:17:38 +01:00
Daniel Schädler 92acbbc221 Split up get_advancing_teams 2025-02-12 21:52:23 +01:00
Daniel Schädler f36c7817d1 Add offset for second team to make rematches possible in finale only 2025-02-12 21:47:51 +01:00
Daniel Schädler e70d16b688 Add special case for po2 teams in tournament and half advancing 2024-04-07 23:10:36 +02:00
Daniel Schädler c35905b52a Improve readability 2024-04-07 22:45:28 +02:00
Daniel Schädler b072104241 Beautify code 2024-04-07 22:01:23 +02:00
Daniel Schädler 5d857c5d82 Remove position from comparison 2024-04-07 21:40:59 +02:00
Daniel Schädler 2705cd0bdb Assign position directly 2024-04-07 21:21:17 +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 86651169e9 Sort group scores correctly in backend 2024-04-07 17:24:42 +02:00
Daniel Schädler 6432296391
Fix logging 2022-07-01 22:21:23 +02:00
Daniel Schädler b609549659
Add logging if updating group scores fails 2022-07-01 20:19:57 +02:00
Daniel Schädler a67ef86dca
Fix upcoming matches not returning for group stage 2022-06-29 22:48:54 +02:00
Daniel Schädler 8d438946fe
Merge branch 'master' into performance 2022-06-25 21:32:17 +02:00
Daniel Schädler 385e2554b2
Shuffle intermediate stage match position before populating stage below 2022-06-25 21:28:44 +02:00
Daniel Schädler bbb8e209df
Update groups points at start and end of a match 2022-06-25 18:20:59 +02:00
Daniel Schädler 94aaa2d8f4
Add missing end of class 2022-06-25 16:57:14 +02:00
Daniel Schädler d18efbac96 Remove bets instead of just commenting 2022-06-12 21:42:01 +00:00
Thor77 96abf0536a
Add simple health check 2022-06-10 19:18:08 +02:00
Daniel Schädler 40edc85562
Disable bet serialization when matches are requested 2022-05-29 23:58:12 +02:00
Daniel Schädler ead6d4f475
TUR-9: Alter match filter for playoff stage to how it probably was meant to be 2022-05-20 09:41:01 +02:00
Daniel Schädler afa9a26d93
Add documentation to upcoming matches filter 2022-05-20 09:27:54 +02:00
Daniel Schädler 22ab1eb69b
TUR-9: Remove unnecessary reject (this never did anything; there is no state "running") 2022-05-20 09:27:54 +02:00
Daniel Schädler e184c76083
WIP 2022-05-20 09:27:53 +02:00
Daniel Schädler dc0afbec14
TUR-22: Add documentation to match reordering 2022-05-20 00:25:02 +02:00
Daniel Schädler 0b6ad3f879
Improve group match order 2022-05-20 00:24:21 +02:00
Daniel Schädler c3af6f9232
Rubocop -A 2021-08-15 14:31:50 +02:00
Daniel Schädler 1a96cefbc8 Guard clause to make Hound woof 2019-11-09 00:00:43 +01:00
Daniel Schädler 8c39fa9894 Manually sort position of groups of 4 teams 2019-11-08 23:51:23 +01:00
Thor77 28d047b1bf
Include parent group/stage in .index 2019-11-06 15:58:10 +01:00
Thor77 5343fcbd20 Recurisvely include all related objects 2019-11-06 11:38:24 +01:00
Daniel Schädler b001817bac Filter matches by state parameter 2019-10-26 00:34:04 +02:00
Daniel Schädler 33ccab8988 Return all matches also from groups 2019-10-26 00:32:14 +02:00
Daniel Schädler a6b7a905a0 Return matches as children of tournament 2019-10-25 23:49:27 +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
Thor77 d317585168
Add "simple" parameter to tournament show 2019-10-25 23:17:08 +02:00
Daniel Schädler a2691b9f88 Cache group_score in variable in sort function 2019-06-18 22:35:17 +02:00
Daniel Schädler b28561043e Implement stages controller (GET UPDATE) 2019-06-18 22:22:10 +02:00
Daniel Schädler 54ab1570b1 Sort teams more explicitly and in the right order 2019-06-18 22:22:10 +02:00
Daniel Schädler 4925ea9d83 Make teams added to PlayoffStage configurable 2019-06-18 22:22:10 +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 bc0c7fddc3 Make match position randomizable 2019-06-18 19:22:05 +02:00
Daniel Schädler 88cbba440d Implement methods to get teams sorted by their group scores 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 041ee4ab2c Include bets in match resource 2019-06-18 18:51:55 +02:00
Thor77 f3b8fd4184 Use collection serializer 2019-06-18 18:51:55 +02:00
Thor77 123649a4f4 Add collection serializer for bets 2019-06-18 18:51:55 +02:00
Daniel Schädler 386155a690 Fix last Match not being stopped correctly 2019-06-18 14:09:29 +02:00
Thor77 2baefb9ae6 Associate teams only on interactor success 2019-06-18 13:29:31 +02:00
Thor77 3109308817 Fix teams not associated with created tournament
when choosing a group stage
2019-06-18 13:29:31 +02:00
Thor77 6640be1e9a Add devise confirmable to user model 2019-06-18 12:27:00 +02:00
Thor77 fb2e7aa385 Add generated devise mailer views 2019-06-18 12:27:00 +02:00
Daniel Schädler 213867a827 Let context fail if population of match below fails 2019-06-17 15:02:30 +02:00
Daniel Schädler e0da9ff7b5 Assign empty array if object_to_save is nil before pushing values to it
https://stackoverflow.com/questions/12163625/create-or-append-to-array-in-ruby
2019-06-17 15:02:30 +02:00
Daniel Schädler c9e1e153df Add interactor to advance all teams stuck in single team matches
After playoffs are created, before saving the stage this interactor
goes to the intermediate stage, looks for all the matches that are
:single_team matches and populates the match below with their respective
"winner".
2019-06-17 15:02:30 +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 5f378f27b2 Correct position for :single_team matches 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
Daniel Schädler 8e3325bbfc Simplify concatenation of empty stages 2019-06-17 15:02:30 +02:00
Thor77 914cfbd94d
Reword error on invalid match state 2019-06-17 13:48:50 +02:00
Thor77 175870ab42
Prevent betting on running/finished matches 2019-06-17 13:48:50 +02:00
Thor77 6d12f889c5
Add Bet serializer 2019-06-17 13:48:50 +02:00