From cd12628bef7b86d1f1fdf21c011fcccf654046f4 Mon Sep 17 00:00:00 2001 From: ben Date: Sun, 8 Oct 2023 21:27:14 +0100 Subject: [PATCH] backend work for leaderboard groups --- PyYAML-6.0.1-cp311-cp311-win_amd64.whl | Bin 0 -> 144699 bytes src/backend/viewsets.py | 2 +- src/leaderboard/serializers.py | 5 ++- src/leaderboard/views.py | 17 +++++++- ...leaderboardgroup_team_leaderboard_group.py | 37 ++++++++++++++++++ src/team/models.py | 12 +++++- src/team/serializers.py | 24 ++++++++++-- src/team/urls.py | 4 ++ src/team/views.py | 11 +++++- 9 files changed, 102 insertions(+), 10 deletions(-) create mode 100644 PyYAML-6.0.1-cp311-cp311-win_amd64.whl create mode 100644 src/team/migrations/0005_leaderboardgroup_team_leaderboard_group.py diff --git a/PyYAML-6.0.1-cp311-cp311-win_amd64.whl b/PyYAML-6.0.1-cp311-cp311-win_amd64.whl new file mode 100644 index 0000000000000000000000000000000000000000..5e19319a4280ef040775ec1e29a277411e156f66 GIT binary patch literal 144699 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
@BhpfWm{0EqbQ&6peSqS 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

V(syjeWo@lkGN04i3CAUr% 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 H1)%={h|ypZ literal 0 HcmV?d00001 diff --git a/src/backend/viewsets.py b/src/backend/viewsets.py index 0c755639..722ea748 100644 --- a/src/backend/viewsets.py +++ b/src/backend/viewsets.py @@ -29,7 +29,7 @@ def get_serializer_class(self): class AdminListModelViewSet(ModelViewSet): def get_serializer_class(self): if self.request is None: - return self.admin_serializer_class + return self.serializer_class if self.action == "list" and not is_exporting(self.request): if self.request.user.is_staff and not self.request.user.should_deny_admin(): return self.list_admin_serializer_class diff --git a/src/leaderboard/serializers.py b/src/leaderboard/serializers.py index df972b3b..36e9a191 100644 --- a/src/leaderboard/serializers.py +++ b/src/leaderboard/serializers.py @@ -20,10 +20,11 @@ def get_position(self, _) -> int: class LeaderboardTeamScoreSerializer(serializers.ModelSerializer): team_name = serializers.ReadOnlyField(source="team.name") + leaderboard_group_name = serializers.ReadOnlyField(source="team.leaderboard_group.name") class Meta: model = Score - fields = ["points", "timestamp", "team_name", "reason", "metadata"] + fields = ["points", "timestamp", "team_name", "reason", "metadata", "leaderboard_group_name"] class LeaderboardUserScoreSerializer(serializers.ModelSerializer): @@ -37,7 +38,7 @@ class Meta: class TeamPointsSerializer(serializers.ModelSerializer): class Meta: model = Team - fields = ["name", "id", "leaderboard_points"] + fields = ["name", "id", "leaderboard_points", "leaderboard_group"] class UserPointsSerializer(serializers.ModelSerializer): diff --git a/src/leaderboard/views.py b/src/leaderboard/views.py index cbe65b39..432b6616 100644 --- a/src/leaderboard/views.py +++ b/src/leaderboard/views.py @@ -1,6 +1,9 @@ import time from django.core.cache import caches +from django.db.models import Window, Q +from django.db.models.functions import RowNumber + from rest_framework.generics import ListAPIView from rest_framework.renderers import JSONRenderer from rest_framework.response import Response @@ -55,7 +58,19 @@ def get(self, request, *args, **kwargs): return FormattedResponse(cached_leaderboard) graph_members = config.get("graph_members") - top_teams = Team.objects.visible().ranked()[:graph_members] + + teams_with_row_numbers = Team.objects.visible().annotate( + row_number=Window( + expression=RowNumber(), + partition_by=['leaderboard_group'], + order_by=["-leaderboard_points", "last_score"] + ) + ) + top_teams = teams_with_row_numbers.filter( + Q(row_number__lte=graph_members) & + (Q(leaderboard_group__has_own_leaderboard=True) | Q(leaderboard_group__isnull=True)) + ) + top_users = ( Member .objects.filter(is_visible=True) diff --git a/src/team/migrations/0005_leaderboardgroup_team_leaderboard_group.py b/src/team/migrations/0005_leaderboardgroup_team_leaderboard_group.py new file mode 100644 index 00000000..f8e502e3 --- /dev/null +++ b/src/team/migrations/0005_leaderboardgroup_team_leaderboard_group.py @@ -0,0 +1,37 @@ +# Generated by Django 4.2.6 on 2023-10-08 17:34 + +import backend.validators +from django.db import migrations, models +import django.db.models.deletion +import django_prometheus.models + + +class Migration(migrations.Migration): + + dependencies = [ + ("team", "0004_alter_team_name_team_team_team_username_uniq_idx"), + ] + + operations = [ + migrations.CreateModel( + name="LeaderboardGroup", + fields=[ + ("id", models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")), + ("name", models.CharField(max_length=31, unique=True, validators=[backend.validators.printable_name])), + ("description", models.TextField(blank=True, max_length=255)), + ("is_self_assignable", models.BooleanField(default=True)), + ("has_own_leaderboard", models.BooleanField(default=True)), + ], + bases=(django_prometheus.models.ExportModelOperationsMixin("leaderboard_group"), models.Model), + ), + migrations.AddField( + model_name="team", + name="leaderboard_group", + field=models.ForeignKey( + null=True, + on_delete=django.db.models.deletion.SET_NULL, + related_name="teams", + to="team.leaderboardgroup", + ), + ), + ] diff --git a/src/team/models.py b/src/team/models.py index 839207cf..a1fae109 100644 --- a/src/team/models.py +++ b/src/team/models.py @@ -1,5 +1,5 @@ from django.db import models -from django.db.models import CASCADE, Prefetch +from django.db.models import CASCADE, SET_NULL, Prefetch from django.db.models.functions import Lower from django.utils import timezone from django_prometheus.models import ExportModelOperationsMixin @@ -29,6 +29,15 @@ def prefetch_solves(self) -> "models.QuerySet[Team]": return self.prefetch_related(Prefetch("solves", queryset=Solve.objects.filter(correct=True))) +class LeaderboardGroup(ExportModelOperationsMixin("leaderboard_group"), models.Model): + """Represents a group which teams can assign themselves to.""" + + name = models.CharField(max_length=31, unique=True, validators=[printable_name]) + description = models.TextField(blank=True, max_length=255) + is_self_assignable = models.BooleanField(default=True) + has_own_leaderboard = models.BooleanField(default=True) + + class Team(ExportModelOperationsMixin("team"), models.Model): """Represents a team of one or more Members.""" @@ -41,6 +50,7 @@ class Team(ExportModelOperationsMixin("team"), models.Model): leaderboard_points = models.IntegerField(default=0) last_score = models.DateTimeField(default=timezone.now) size_limit_exempt = models.BooleanField(default=False) + leaderboard_group = models.ForeignKey(LeaderboardGroup, on_delete=SET_NULL, related_name="teams", null=True) objects = TeamQuerySet.as_manager() diff --git a/src/team/serializers.py b/src/team/serializers.py index fcde1c4a..0f31d836 100644 --- a/src/team/serializers.py +++ b/src/team/serializers.py @@ -8,7 +8,7 @@ from backend.signals import team_create from challenge.serializers import SolveSerializer from member.serializers import MinimalMemberSerializer -from team.models import Team +from team.models import Team, LeaderboardGroup class SelfTeamSerializer(IncorrectSolvesMixin, serializers.ModelSerializer): @@ -30,8 +30,9 @@ class Meta: "incorrect_solves", "points", "leaderboard_points", + "leaderboard_group" ] - read_only_fields = ["id", "is_visible", "incorrect_solves"] + read_only_fields = ["id", "is_visible", "incorrect_solves", "leaderboard_group"] class TeamSerializer(IncorrectSolvesMixin, serializers.ModelSerializer): @@ -52,6 +53,7 @@ class Meta: "incorrect_solves", "points", "leaderboard_points", + "leaderboard_group" ] def get_incorrect_solves(self, instance): @@ -63,7 +65,13 @@ class ListTeamSerializer(serializers.ModelSerializer): class Meta: model = Team - fields = ["id", "name", "members"] + fields = ["id", "name", "members", "leaderboard_group"] + + +class LeaderboardGroupSerializer(serializers.ModelSerializer): + class Meta: + model = LeaderboardGroup + fields = ["name", "description", "is_self_assignable", "has_own_leaderboard"] class AdminTeamSerializer(IncorrectSolvesMixin, serializers.ModelSerializer): @@ -86,6 +94,7 @@ class Meta: "size_limit_exempt", "points", "leaderboard_points", + "leaderboard_group" ] @@ -98,18 +107,25 @@ class Meta: class CreateTeamSerializer(serializers.ModelSerializer): class Meta: model = Team - fields = ["id", "is_visible", "name", "owner", "password"] + fields = ["id", "is_visible", "name", "owner", "password", "leaderboard_group"] read_only_fields = ["id", "is_visible", "owner"] def create(self, validated_data): try: name = validated_data["name"] password = validated_data["password"] + leaderboard_group = validated_data.get("leaderboard_group", None) + + if leaderboard_group is not None and not leaderboard_group.is_self_assignable: + raise ValidationError("illegal_leaderboard_group") + team = Team.objects.create( name=name, password=password, owner=self.context["request"].user, + leaderboard_group=leaderboard_group ) + self.context["request"].user.team = team self.context["request"].user.save() team_create.send(sender=self.__class__, team=team) diff --git a/src/team/urls.py b/src/team/urls.py index d27e23b9..082c21b7 100644 --- a/src/team/urls.py +++ b/src/team/urls.py @@ -6,10 +6,14 @@ router = DefaultRouter() router.register(r"", views.TeamViewSet, basename="team") +group_router = DefaultRouter() +group_router.register(r"", views.LeaderboardGroupViewSet, basename="groups") + urlpatterns = [ path("self/", views.SelfView.as_view(), name="team-self"), path("create/", views.CreateTeamView.as_view(), name="team-create"), path("join/", views.JoinTeamView.as_view(), name="team-join"), path("leave/", views.LeaveTeamView.as_view(), name="team-leave"), + path("groups/", include(group_router.urls), name="leaderboard-groups"), path("", include(router.urls), name="team"), ] diff --git a/src/team/views.py b/src/team/views.py index 31f211df..6a37236e 100644 --- a/src/team/views.py +++ b/src/team/views.py @@ -15,7 +15,7 @@ from rest_framework.views import APIView from backend.exceptions import FormattedException -from backend.permissions import AdminOrReadOnlyVisible, ReadOnlyBot +from backend.permissions import AdminOrReadOnlyVisible, ReadOnlyBot, AdminOrReadOnly from backend.response import FormattedResponse from backend.signals import team_join, team_join_attempt, team_join_reject from backend.viewsets import AdminListModelViewSet @@ -30,6 +30,7 @@ ListTeamSerializer, SelfTeamSerializer, TeamSerializer, + LeaderboardGroupSerializer ) @@ -56,6 +57,14 @@ def get_object(self): ) +class LeaderboardGroupViewSet(AdminListModelViewSet): + permission_classes = (AdminOrReadOnly,) + serializer_class = LeaderboardGroupSerializer + admin_serializer_class = LeaderboardGroupSerializer + list_serializer_class = LeaderboardGroupSerializer + list_admin_serializer_class = LeaderboardGroupSerializer + + class TeamViewSet(AdminListModelViewSet): permission_classes = (AdminOrReadOnlyVisible,) throttle_scope = "team"