diff --git a/src/apps/api/serializers/submission_leaderboard.py b/src/apps/api/serializers/submission_leaderboard.py index 368f8fec4..5e86fd3fc 100644 --- a/src/apps/api/serializers/submission_leaderboard.py +++ b/src/apps/api/serializers/submission_leaderboard.py @@ -8,10 +8,15 @@ class SubmissionScoreSerializer(serializers.ModelSerializer): index = serializers.IntegerField(source='column.index', read_only=True) column_key = serializers.CharField(source='column.key', read_only=True) + precision = serializers.IntegerField(source='column.precision', read_only=True) + is_primary = serializers.SerializerMethodField() class Meta: model = SubmissionScore - fields = ('id', 'index', 'score', 'column_key') + fields = ('id', 'index', 'score', 'column_key', 'precision', 'is_primary') + + def get_is_primary(self, obj): + return obj.column.index == obj.column.leaderboard.primary_index class SubmissionLeaderBoardSerializer(serializers.ModelSerializer): diff --git a/src/static/riot/competitions/detail/submission_manager.tag b/src/static/riot/competitions/detail/submission_manager.tag index 730b2face..87c4c0c9f 100644 --- a/src/static/riot/competitions/detail/submission_manager.tag +++ b/src/static/riot/competitions/detail/submission_manager.tag @@ -641,8 +641,12 @@ self.get_score = function (submission) { try { - return parseFloat(submission.scores[0].score).toFixed(2) - + // Look for a primary score, fallback to the first score if not found + let score_obj = _.find(submission.scores, s => s.is_primary) || submission.scores[0] + if (score_obj) { + return parseFloat(score_obj.score).toFixed(score_obj.precision || 0) + } + return "" } catch { return "" }