Commit Graph

67 Commits

Author SHA1 Message Date
Daniel Schädler 8951070a15 fix: refresh RuboCop cleanup 2026-05-06 12:06:19 +02:00
Daniel Schädler 27ed1e191c Merge remote-tracking branch 'origin/master' into codex/tur-225-user-organizer-accounts
# Conflicts:
#	db/schema.rb
#	spec/e2e/http/api_surface_spec.rb
2026-05-04 19:21:01 +02:00
Daniel Schädler 0d46664995 fix(db): avoid duplicate migration version 2026-05-04 17:47:12 +02:00
Daniel Schädler e26bc50ce3 Merge remote-tracking branch 'origin/master' into codex/tur-223-match-metadata 2026-05-04 17:41:24 +02:00
Daniel Schädler ed299aba57 feat(accounts): support multiple team players
Teams now use a join table so organizers can attach more than one player account while players still get public profile data.
2026-05-04 15:25:26 +02:00
Daniel Schädler 0cbcb64066 feat(matches): add match metadata updates 2026-05-04 15:10:11 +02:00
Daniel Schädler 794f835148 fix(tournaments): keep owner data out metadata
Tournament metadata remains optional and tournament-scoped.
2026-05-04 14:55:48 +02:00
Daniel Schädler 995a2cc250 feat(accounts): add player team profiles
Teams can link to player accounts by email while keeping profile tournament data public unless viewed by the account owner.
2026-05-04 14:52:59 +02:00
Daniel Schädler 9b10cc12d2 feat(tournaments): add metadata fields
Add typed tournament metadata to API payloads and follower sync.
2026-05-04 14:43:20 +02:00
Daniel Schädler 431f0a6640 docs: document transaction log API 2026-04-30 14:09:45 +02:00
Daniel Schädler 54975d969b Merge remote-tracking branch 'origin/master' into codex/tur-30-transaction-log 2026-04-30 14:07:12 +02:00
Daniel Schädler 21e1463b64 feat: add tournament transaction log 2026-04-30 10:04:56 +02:00
Daniel Schädler 2b63e61475 fix(sync): protect follower sync tokens
Store read-only receiver tokens as keyed digests and expose only sync_auth_configured in owner responses. Keep leader push tokens write-only in API responses because outbound sync still needs to send them.

Refs TUR-84
2026-04-30 09:32:37 +02:00
Daniel Schädler 7b8fc67593 fix(docker): skip demo seeds in production 2026-04-29 17:02:10 +02:00
Daniel Schädler 6df5cb2502 fix(ci): restore Rails 8 spec suite
Confirm factory users for real Devise auth in request specs and use Rails 8-compatible status and route calls to remove deprecation warnings.
2026-04-29 15:48:20 +02:00
Daniel Schädler 90e71a068c Merge master and fix e2e service env 2026-04-28 22:58:09 +02:00
Daniel Schädler fe0f3c868e
TUR-130 update dependencies and ruby 2026-04-28 13:55:47 +02:00
Daniel Schädler 3008b9fd50
TUR-137 add timer reasons 2026-04-28 12:28:01 +02:00
Daniel Schädler 6db6442205 Merge remote-tracking branch 'origin/master' into codex/TUR-113-fix-rubocop
# Conflicts:
#	spec/e2e/http/api_surface_spec.rb
#	spec/e2e/http/tournament_follow_sync_beamers_websocket_spec.rb
2026-04-27 10:55:29 +02:00
Daniel Schädler 35c8591af3 fix: move beamer backfill to new migration 2026-04-26 23:51:34 +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 cfb07e82fc fix: clear RuboCop offenses 2026-04-26 15:46:31 +02:00
Daniel Schädler e9ef73c230 refactor: rename timer db column 2026-04-24 11:39:26 +02:00
Daniel Schädler afff813994 feat: add timer modes and websocket updates 2026-04-23 23:29:03 +02:00
Daniel Schädler 7d65e4df82 feat: track team action list completion 2026-04-22 16:51:17 +02:00
Daniel Schädler 85cff5ef85 Fix merged tournament sync schema in tests 2026-04-16 16:15:45 +02:00
Daniel Schädler 03947ac0ca Sync beamer state to followers 2026-04-16 15:55:20 +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
Daniel Schädler 26679d87c2 Add sync snapshot tracking 2026-04-14 22:36:39 +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 514bbb553b Add migration for timer 2025-03-09 21:27:38 +01:00
Daniel Schädler 1e899d9944 Add missing migrations 2024-04-07 21:21:33 +02:00
Thor77 28a74654d4 Update to rails 7.0.3
* updated ruby to 2.7.5
* updated rails to 7.0.3
* switched devise_token_auth to git for rails7 support
* ran `rails app:update`
* cleanup .gitlab-ci.yml
* remove unnecessary ci files
* remove unused docker rake task
* fix potential inconsistent image build by using commit images as base
2022-05-19 09:08:36 +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 f5b610703c Add two new parameters to tournament
instant_finalists_amount is the amount of teams that instantly are in
the finals after the group stage ends.

intermediate_round_participants_amount is the amount of teams that have
a chance to advance after group stage but must play a relegation game to
actually do so.

Both of these values need to match, so that
instant_finalists_amount + (intermediate_round_participants_amount / 2)
is a power of 2. Or to be more precise, the power of two that is saved
in playoff_teams_amount of the tournament.
2019-06-13 13:21:24 +02:00
Daniel Schädler bd2af09339 Add field to tournament containing playoff_teams_amount
This field represents how many teams advance into playoff stage after
the group stage has ended.
2019-06-05 16:46:06 +02:00
Daniel Schädler c1dc43948b Fix typo in received_points 2019-06-05 09:49:21 +02:00
Thor77 d7a8504b45 Replace deprecated Faker::Dog 2019-04-03 09:45:56 +02:00
Daniel Schädler a155d7d7e2 Save Matches and Stages 2018-12-11 16:35:14 +01:00
Daniel Schädler 4142f473f0 Make seeds.rb beautiful 2018-12-11 16:21:52 +01:00
Daniel Schädler 68f9b3b2b3 Change Score to MatchScore & MatchScore score attribute to points
This is done to improve the naming and therefore make things easier to understand.
2018-11-30 14:15:48 +01:00
Daniel Schädler 4afa32542e Change GroupScore attributes 2018-11-30 12:58:13 +01:00
Daniel Schädler fd02a1ecaf Add Position to Match in Database 2018-11-29 10:42:49 +01:00