From e40d3ef616dd6c77574da8e18b8c037a68fb4245 Mon Sep 17 00:00:00 2001 From: LpCote <73721863+LpCote4@users.noreply.github.com> Date: Tue, 19 Nov 2024 15:55:44 -0500 Subject: [PATCH] fix: potential score not frozen on scoreboard freeze --- CTFd/api/v1/scoreboard.py | 6 ++++++ CTFd/scoreboard.py | 2 +- CTFd/teams.py | 4 ++-- CTFd/themes/core-beta/static/manifest.json | 9 +++++++++ CTFd/users.py | 4 ++-- 5 files changed, 20 insertions(+), 5 deletions(-) diff --git a/CTFd/api/v1/scoreboard.py b/CTFd/api/v1/scoreboard.py index bcb51937..f9a67f8a 100644 --- a/CTFd/api/v1/scoreboard.py +++ b/CTFd/api/v1/scoreboard.py @@ -73,9 +73,15 @@ class ScoreboardList(Resource): for i, x in enumerate(standings): + potentialScore = 0 team_ids = [x.account_id for team in standings] fails = Fails.query.filter(Fails.account_id.in_(team_ids)) + + freeze = get_config("freeze") + if freeze: + fails = fails.filter(Fails.date < unix_time_to_utc(freeze)) + for fail in fails: challenge = Challenges.query.filter_by(id=fail.challenge_id).first_or_404() if challenge.type == "manual" or challenge.type == "manualRecursive" or challenge.type == "flash": diff --git a/CTFd/scoreboard.py b/CTFd/scoreboard.py index 854b84f8..5591c2e5 100644 --- a/CTFd/scoreboard.py +++ b/CTFd/scoreboard.py @@ -20,7 +20,7 @@ def listing(): infos = get_infos() if config.is_scoreboard_frozen(): - infos.append("Le classement a été gelé") + infos.append("Le classement a été gelé! Vous pouvez encore soumettre des défis, le classement sera mis à jour à la fin de l'évènement.") if is_admin() is True and scores_visible() is False: infos.append("Les scores ne sont pas actuellement visibles pour les utilisateurs") diff --git a/CTFd/teams.py b/CTFd/teams.py index 953281ac..4a1f6bf6 100644 --- a/CTFd/teams.py +++ b/CTFd/teams.py @@ -390,7 +390,7 @@ def private(): score = team.get_score(admin=True) if config.is_scoreboard_frozen(): - infos.append("Le classement a été gelé") + infos.append("Le classement a été gelé! Vous pouvez encore soumettre des défis, le classement sera mis à jour à la fin de l'évènement.") return render_template( "teams/private.html", @@ -443,7 +443,7 @@ def public(team_id): return render_template("teams/public.html", team=team, errors=errors) if config.is_scoreboard_frozen(): - infos.append("Le classement a été gelé") + infos.append("Le classement a été gelé! Vous pouvez encore soumettre des défis, le classement sera mis à jour à la fin de l'évènement.") return render_template( "teams/public.html", diff --git a/CTFd/themes/core-beta/static/manifest.json b/CTFd/themes/core-beta/static/manifest.json index 587bd710..64d72ea0 100644 --- a/CTFd/themes/core-beta/static/manifest.json +++ b/CTFd/themes/core-beta/static/manifest.json @@ -189,5 +189,14 @@ "assets/js/index.js", "_index.84adcd49.js" ] + }, + "_CommentBox.2a5596be.js": { + "file": "assets/CommentBox.2a5596be.js", + "imports": [ + "assets/js/index.js" + ], + "css": [ + "assets/CommentBox.533f8693.css" + ] } } \ No newline at end of file diff --git a/CTFd/users.py b/CTFd/users.py index 7ff43024..ad724b98 100644 --- a/CTFd/users.py +++ b/CTFd/users.py @@ -55,7 +55,7 @@ def private(): user = get_current_user() if config.is_scoreboard_frozen(): - infos.append("Le classement a été gelé") + infos.append("Le classement a été gelé! Vous pouvez encore soumettre des défis, le classement sera mis à jour à la fin de l'évènement.") return render_template( "users/private.html", @@ -75,7 +75,7 @@ def public(user_id): user = Users.query.filter_by(id=user_id, banned=False, hidden=False).first_or_404() if config.is_scoreboard_frozen(): - infos.append("Le classement a été gelé") + infos.append("Le classement a été gelé! Vous pouvez encore soumettre des défis, le classement sera mis à jour à la fin de l'évènement.") return render_template( "users/public.html", user=user, account=user.account, infos=infos, errors=errors -- GitLab