From 5dd3f1b1d0d12be537098ac80175fe98ea3d84ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjam=C3=ADn=20Mravec?= Date: Sat, 11 Nov 2023 17:38:11 +0100 Subject: [PATCH] Added stats to problem administation --- competition/serializers.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/competition/serializers.py b/competition/serializers.py index ecba2979..516ee7fb 100644 --- a/competition/serializers.py +++ b/competition/serializers.py @@ -195,12 +195,21 @@ class ProblemWithSolutionsSerializer(serializers.ModelSerializer): solution_set = SolutionAdministrationSerializer(many=True) correction = ProblemCorrectionSerializer(many=False) series = SeriesSerializer() + + histogram = serializers.SerializerMethodField('get_series_histogram') + total_solutions = serializers.SerializerMethodField('get_series_num_solutions') class Meta: model = models.Problem - fields = ['solution_set', 'text', 'order', + fields = ['histogram', 'total_solutions', 'solution_set', 'text', 'order', 'correction', 'series', 'solution_pdf'] - read_only_fields = ['text', 'order', 'series'] + read_only_fields = ['histogram', 'num_solutions', 'text', 'order', 'series'] + + def get_series_histogram(self, obj): + return models.Problem.get_stats(obj).get('histogram') + + def get_series_num_solutions(self, obj): + return models.Problem.get_stats(obj).get('num_solutions') # class ProblemStatsSerializer(serializers.Serializer):