From 624bcd602b70380aa7d9bf046a46469e04c5540e Mon Sep 17 00:00:00 2001 From: DEV-bot Date: Mon, 16 Mar 2026 03:45:10 +0000 Subject: [PATCH] fix(lobby): gate reveal promotion on resolved rounds --- lobby/views.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lobby/views.py b/lobby/views.py index 4146cb5..f092fc9 100644 --- a/lobby/views.py +++ b/lobby/views.py @@ -247,6 +247,16 @@ def _maybe_promote_reveal_to_scoreboard(session: GameSession) -> GameSession: if current_round_question is None: return session + players_count = Player.objects.filter(session=session).count() + guess_count = Guess.objects.filter(round_question=current_round_question).count() + has_score_events = ScoreEvent.objects.filter( + session=session, + meta__round_question_id=current_round_question.id, + ).exists() + reveal_is_resolved = has_score_events or (players_count > 0 and guess_count >= players_count) + if not reveal_is_resolved: + return session + with transaction.atomic(): locked_session = GameSession.objects.select_for_update().get(pk=session.pk) if locked_session.status != GameSession.Status.REVEAL: