diff --git a/gameserver/admin.py b/gameserver/admin.py index d7866b2..c462e04 100644 --- a/gameserver/admin.py +++ b/gameserver/admin.py @@ -1,4 +1,4 @@ -from adminsortable2.admin import SortableInlineAdminMixin, SortableAdminBase +from adminsortable2.admin import SortableAdminBase, SortableInlineAdminMixin from django.contrib import admin from django.contrib.auth import get_user_model from django.contrib.flatpages.admin import FlatPageAdmin diff --git a/gameserver/api/routes.py b/gameserver/api/routes.py index 5d8fa8e..82781c0 100644 --- a/gameserver/api/routes.py +++ b/gameserver/api/routes.py @@ -1,12 +1,13 @@ -from django.db.models import F, OuterRef, Subquery, Case, When, Q +import datetime +from typing import Any, List + +from django.db.models import Case, F, OuterRef, Q, Subquery, When from django.shortcuts import get_object_or_404 +from ninja import NinjaAPI, Schema from gameserver.models.cache import ContestScore -from gameserver.models.contest import ContestProblem, ContestSubmission, Contest -from ninja import NinjaAPI, Schema -from typing import List, Any +from gameserver.models.contest import Contest, ContestProblem, ContestSubmission -import datetime def unicode_safe(string): return string.encode("unicode_escape").decode() @@ -85,9 +86,9 @@ def ctftime_standings(request, contest_name: str): return {"standings": standings, "tasks": task_names} + @api.get("/contests", response=List[ContestOutSchema]) def contests(request): - return ( - Contest.objects.filter(is_public=True) - .values("name", "slug", "start_time", "end_time", "max_team_size", "description", "summary") + return Contest.objects.filter(is_public=True).values( + "name", "slug", "start_time", "end_time", "max_team_size", "description", "summary" ) diff --git a/gameserver/models/cache.py b/gameserver/models/cache.py index 24b026b..db035f8 100644 --- a/gameserver/models/cache.py +++ b/gameserver/models/cache.py @@ -1,5 +1,5 @@ -from typing import TYPE_CHECKING, Optional, Self, Protocol, Callable -from django.http import HttpRequest +from typing import TYPE_CHECKING, Callable, Optional, Protocol, Self + from django.apps import apps from django.db import models, transaction from django.db.models import ( @@ -8,22 +8,24 @@ Count, F, OuterRef, + QuerySet, Subquery, Sum, Value, When, - QuerySet, Window, ) from django.db.models.functions import Coalesce, Rank, RowNumber +from django.http import HttpRequest if TYPE_CHECKING: - from .profile import User from .contest import Contest, ContestParticipation, ContestSubmission + from .profile import User class ResetableCache(Protocol): - def can_reset(cls, request: HttpRequest) -> None: ... + def can_reset(cls, request: HttpRequest) -> None: + ... class CacheMeta(models.Model): diff --git a/gameserver/models/comment.py b/gameserver/models/comment.py index 19b36d0..6efb542 100644 --- a/gameserver/models/comment.py +++ b/gameserver/models/comment.py @@ -1,9 +1,7 @@ -from typing import Iterable from django.contrib.contenttypes.fields import GenericForeignKey, GenericRelation from django.contrib.contenttypes.models import ContentType from django.db import models from django.urls import reverse -from django.utils import timezone from .profile import User diff --git a/gameserver/urls.py b/gameserver/urls.py index aa74ff3..26139c3 100644 --- a/gameserver/urls.py +++ b/gameserver/urls.py @@ -1,4 +1,4 @@ -from django.urls import path, include +from django.urls import include, path from . import views from .api.routes import api diff --git a/providers/CTFTimeOauth/provider.py b/providers/CTFTimeOauth/provider.py index f4b0aa0..e4621bb 100644 --- a/providers/CTFTimeOauth/provider.py +++ b/providers/CTFTimeOauth/provider.py @@ -1,5 +1,6 @@ from allauth.socialaccount.providers.base import ProviderAccount from allauth.socialaccount.providers.oauth2.provider import OAuth2Provider + from .views import CTFTimeOauth2Adapter diff --git a/providers/CTFTimeOauth/urls.py b/providers/CTFTimeOauth/urls.py index fd8e303..6918663 100644 --- a/providers/CTFTimeOauth/urls.py +++ b/providers/CTFTimeOauth/urls.py @@ -2,5 +2,4 @@ from .provider import CTFTimeOauth2AProvider - urlpatterns = default_urlpatterns(CTFTimeOauth2AProvider)