From ad6694f91e6b89f5baa785fea00b3748369cb329 Mon Sep 17 00:00:00 2001 From: starnakin Date: Mon, 11 Mar 2024 10:36:34 +0100 Subject: [PATCH] fix: tournamnet: can join tournament --- frontend/static/js/api/tournament/Tournament.js | 2 +- frontend/static/js/api/tournament/Tournaments.js | 6 +++--- frontend/static/js/views/tournament/TournamentPageView.js | 2 +- tournament/serializers.py | 6 +++++- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/frontend/static/js/api/tournament/Tournament.js b/frontend/static/js/api/tournament/Tournament.js index 2a4a391..e5e4682 100644 --- a/frontend/static/js/api/tournament/Tournament.js +++ b/frontend/static/js/api/tournament/Tournament.js @@ -79,7 +79,7 @@ class Tourmanent */ async init() { - let response = await this.client._get(`/api/tournaments/${id}`); + let response = await this.client._get(`/api/tournaments/${this.id}`); if (response.status !== 200) return response.status; diff --git a/frontend/static/js/api/tournament/Tournaments.js b/frontend/static/js/api/tournament/Tournaments.js index 2ed8e3f..2b31811 100644 --- a/frontend/static/js/api/tournament/Tournaments.js +++ b/frontend/static/js/api/tournament/Tournaments.js @@ -17,12 +17,12 @@ class Tourmanents /** * * @param {Number} id - * @returns {?Promise} + * @returns {Promise} */ async getTournament(id) { - let tournament = new Tourmanent(this.client); - if (await tournament.init(id)) + let tournament = new Tourmanent(this.client, id); + if (await tournament.init()) return null; return tournament; } diff --git a/frontend/static/js/views/tournament/TournamentPageView.js b/frontend/static/js/views/tournament/TournamentPageView.js index 9081c48..d36fd3d 100644 --- a/frontend/static/js/views/tournament/TournamentPageView.js +++ b/frontend/static/js/views/tournament/TournamentPageView.js @@ -55,7 +55,7 @@ export default class extends AbstractAuthenticatedView document.getElementById("level").innerText = this.tournament.level; document.getElementById("state").innerText = this.tournament.state; - if (this.tournament.state === "waiting") + if (this.tournament.started === false) button.disabled = false; } diff --git a/tournament/serializers.py b/tournament/serializers.py index 6f29235..9308e08 100644 --- a/tournament/serializers.py +++ b/tournament/serializers.py @@ -5,6 +5,7 @@ from games.serializers import GameSerializer class TournamentSerializer(serializers.ModelSerializer): levels = serializers.SerializerMethodField(read_only=True, required=False) + state = serializers.SerializerMethodField(read_only=True, required=False) level = serializers.ReadOnlyField() started = serializers.ReadOnlyField() finished = serializers.ReadOnlyField() @@ -12,7 +13,10 @@ class TournamentSerializer(serializers.ModelSerializer): class Meta: model = TournamentModel - fields = ["name", "nb_players", "nb_players_by_game", "level", "started", "finished", "levels", "id"] + fields = ["name", "nb_players", "nb_players_by_game", "level", "started", "finished", "levels", "id", "state"] + + def get_state(self, instance: TournamentModel): + return ["waiting", "started", "finished"][instance.started + instance.finished] def get_levels(self, instance: TournamentModel): levels: list[list[int]] = []