aboutsummaryrefslogtreecommitdiffstats
path: root/pydis_site/apps/api/admin.py
diff options
context:
space:
mode:
authorGravatar Rohan Reddy Alleti <[email protected]>2023-05-14 23:54:51 +0530
committerGravatar GitHub <[email protected]>2023-05-14 23:54:51 +0530
commita241a397f966a4265935dfd5c92a84fdf95c52c8 (patch)
tree83f6eb572e26e64e6ca18642013abf60f1b23d8b /pydis_site/apps/api/admin.py
parentUpdate pydis_site/apps/content/resources/guides/python-guides/subclassing_bot.md (diff)
parentMerge pull request #972 from python-discord/fix-psycopg3-compatibility-in-met... (diff)
Merge branch 'main' into subclassing_bot
Diffstat (limited to 'pydis_site/apps/api/admin.py')
-rw-r--r--pydis_site/apps/api/admin.py41
1 files changed, 27 insertions, 14 deletions
diff --git a/pydis_site/apps/api/admin.py b/pydis_site/apps/api/admin.py
index 2aca38a1..f3cc0405 100644
--- a/pydis_site/apps/api/admin.py
+++ b/pydis_site/apps/api/admin.py
@@ -1,7 +1,7 @@
from __future__ import annotations
import json
-from typing import Iterable, Optional, Tuple
+from collections.abc import Iterable
from django import urls
from django.contrib import admin
@@ -13,6 +13,8 @@ from .models import (
BotSetting,
DeletedMessage,
DocumentationLink,
+ Filter,
+ FilterList,
Infraction,
MessageDeletionContext,
Nomination,
@@ -60,16 +62,16 @@ class InfractionActorFilter(admin.SimpleListFilter):
title = "Actor"
parameter_name = "actor"
- def lookups(self, request: HttpRequest, model: NominationAdmin) -> Iterable[Tuple[int, str]]:
+ def lookups(self, request: HttpRequest, model: NominationAdmin) -> Iterable[tuple[int, str]]:
"""Selectable values for viewer to filter by."""
actor_ids = Infraction.objects.order_by().values_list("actor").distinct()
actors = User.objects.filter(id__in=actor_ids)
return ((a.id, a.username) for a in actors)
- def queryset(self, request: HttpRequest, queryset: QuerySet) -> Optional[QuerySet]:
+ def queryset(self, request: HttpRequest, queryset: QuerySet) -> QuerySet | None:
"""Query to filter the list of Users against."""
if not self.value():
- return
+ return None
return queryset.filter(actor__id=self.value())
@@ -147,7 +149,7 @@ class DeletedMessageAdmin(admin.ModelAdmin):
list_display = ("id", "author", "channel_id")
- def embed_data(self, message: DeletedMessage) -> Optional[str]:
+ def embed_data(self, message: DeletedMessage) -> str | None:
"""Format embed data in a code block for better readability."""
if message.embeds:
return format_html(
@@ -155,6 +157,7 @@ class DeletedMessageAdmin(admin.ModelAdmin):
"<code>{0}</code></pre>",
json.dumps(message.embeds, indent=4)
)
+ return None
embed_data.short_description = "Embeds"
@@ -194,6 +197,16 @@ class DeletedMessageInline(admin.TabularInline):
model = DeletedMessage
[email protected](FilterList)
+class FilterListAdmin(admin.ModelAdmin):
+ """Admin formatting for the FilterList model."""
+
+
+class FilterAdmin(admin.ModelAdmin):
+ """Admin formatting for the Filter model."""
+
+
@admin.register(MessageDeletionContext)
class MessageDeletionContextAdmin(admin.ModelAdmin):
"""Admin formatting for the MessageDeletionContext model."""
@@ -217,16 +230,16 @@ class NominationActorFilter(admin.SimpleListFilter):
title = "Actor"
parameter_name = "actor"
- def lookups(self, request: HttpRequest, model: NominationAdmin) -> Iterable[Tuple[int, str]]:
+ def lookups(self, request: HttpRequest, model: NominationAdmin) -> Iterable[tuple[int, str]]:
"""Selectable values for viewer to filter by."""
actor_ids = NominationEntry.objects.order_by().values_list("actor").distinct()
actors = User.objects.filter(id__in=actor_ids)
return ((a.id, a.username) for a in actors)
- def queryset(self, request: HttpRequest, queryset: QuerySet) -> Optional[QuerySet]:
+ def queryset(self, request: HttpRequest, queryset: QuerySet) -> QuerySet | None:
"""Query to filter the list of Users against."""
if not self.value():
- return
+ return None
nomination_ids = NominationEntry.objects.filter(
actor__id=self.value()
).values_list("nomination_id").distinct()
@@ -280,16 +293,16 @@ class NominationEntryActorFilter(admin.SimpleListFilter):
title = "Actor"
parameter_name = "actor"
- def lookups(self, request: HttpRequest, model: NominationAdmin) -> Iterable[Tuple[int, str]]:
+ def lookups(self, request: HttpRequest, model: NominationAdmin) -> Iterable[tuple[int, str]]:
"""Selectable values for viewer to filter by."""
actor_ids = NominationEntry.objects.order_by().values_list("actor").distinct()
actors = User.objects.filter(id__in=actor_ids)
return ((a.id, a.username) for a in actors)
- def queryset(self, request: HttpRequest, queryset: QuerySet) -> Optional[QuerySet]:
+ def queryset(self, request: HttpRequest, queryset: QuerySet) -> QuerySet | None:
"""Query to filter the list of Users against."""
if not self.value():
- return
+ return None
return queryset.filter(actor__id=self.value())
@@ -413,15 +426,15 @@ class UserRoleFilter(admin.SimpleListFilter):
title = "Role"
parameter_name = "role"
- def lookups(self, request: HttpRequest, model: UserAdmin) -> Iterable[Tuple[str, str]]:
+ def lookups(self, request: HttpRequest, model: UserAdmin) -> Iterable[tuple[str, str]]:
"""Selectable values for viewer to filter by."""
roles = Role.objects.all()
return ((r.name, r.name) for r in roles)
- def queryset(self, request: HttpRequest, queryset: QuerySet) -> Optional[QuerySet]:
+ def queryset(self, request: HttpRequest, queryset: QuerySet) -> QuerySet | None:
"""Query to filter the list of Users against."""
if not self.value():
- return
+ return None
role = Role.objects.get(name=self.value())
return queryset.filter(roles__contains=[role.id])