Skip to content

Commit 6771a28

Browse files
committed
feat: Django-Allauth 관련 어드민들에 pagination 추가
1 parent b35585b commit 6771a28

2 files changed

Lines changed: 10 additions & 6 deletions

File tree

app/admin_api/test/socialaccount_test.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ def test_non_superuser_email_address_list_rejected(regular_user):
7474
def test_social_app_list(api_client, social_app):
7575
response = api_client.get(reverse("v1:admin-social-app-list"))
7676
assert response.status_code == http.HTTPStatus.OK
77-
rows = response.json()
77+
rows = response.json()["results"]
7878
assert any(row["id"] == social_app.id for row in rows)
7979

8080

@@ -130,7 +130,7 @@ def test_social_app_destroy(api_client, social_app):
130130
def test_social_account_list_filter_by_user(api_client, regular_user, multi_social_user):
131131
response = api_client.get(reverse("v1:admin-social-account-list"), {"user": str(regular_user.id)})
132132
assert response.status_code == http.HTTPStatus.OK
133-
rows = response.json()
133+
rows = response.json()["results"]
134134
assert {row["uid"] for row in rows} == {"alice-google-1"}
135135

136136

@@ -171,7 +171,7 @@ def test_social_account_destroy_last_social_cascades_to_emails(api_client, regul
171171
def test_email_address_list_filter_by_user(api_client, regular_user):
172172
response = api_client.get(reverse("v1:admin-email-address-list"), {"user": str(regular_user.id)})
173173
assert response.status_code == http.HTTPStatus.OK
174-
rows = response.json()
174+
rows = response.json()["results"]
175175
assert {row["email"] for row in rows} == {"alice@example.com"}
176176

177177

app/admin_api/views/socialaccount.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from allauth.socialaccount.models import SocialAccount, SocialApp
99
from core.authz import IsSuperUser
1010
from core.const.tag import OpenAPITag
11+
from core.pagination import AdminPagination
1112
from core.viewset.json_schema_viewset import JsonSchemaViewSet
1213
from drf_spectacular.utils import extend_schema, extend_schema_view
1314
from rest_framework import mixins, viewsets
@@ -20,8 +21,9 @@
2021
class SocialAppAdminViewSet(JsonSchemaViewSet, viewsets.ModelViewSet):
2122
http_method_names = ["get", "post", "patch", "delete"]
2223
permission_classes = [IsSuperUser]
24+
pagination_class = AdminPagination
2325
serializer_class = SocialAppAdminSerializer
24-
queryset = SocialApp.objects.all()
26+
queryset = SocialApp.objects.all().order_by("provider", "id")
2527

2628

2729
@extend_schema_view(**{m: extend_schema(tags=[OpenAPITag.ADMIN_ALLAUTH]) for m in DESTROY_ONLY_METHODS})
@@ -34,8 +36,9 @@ class SocialAccountAdminViewSet(
3436
):
3537
http_method_names = ["get", "delete"]
3638
permission_classes = [IsSuperUser]
39+
pagination_class = AdminPagination
3740
serializer_class = SocialAccountAdminSerializer
38-
queryset = SocialAccount.objects.all().select_related("user")
41+
queryset = SocialAccount.objects.all().select_related("user").order_by("-date_joined", "-id")
3942
filterset_fields = ["user"]
4043

4144
def perform_destroy(self, instance: SocialAccount) -> None:
@@ -47,5 +50,6 @@ class EmailAddressAdminViewSet(JsonSchemaViewSet, viewsets.ModelViewSet):
4750
http_method_names = ["get", "post", "patch", "delete"]
4851
serializer_class = EmailAddressAdminSerializer
4952
permission_classes = [IsSuperUser]
50-
queryset = EmailAddress.objects.all().select_related("user")
53+
pagination_class = AdminPagination
54+
queryset = EmailAddress.objects.all().select_related("user").order_by("-id")
5155
filterset_fields = ["user"]

0 commit comments

Comments
 (0)