sort data in metadata
This commit is contained in:
parent
87e0236ec1
commit
f0a4c7d8c0
@ -5,6 +5,14 @@ from rest_framework.request import clone_request
|
|||||||
|
|
||||||
class ExpandedMetadata(SimpleMetadata):
|
class ExpandedMetadata(SimpleMetadata):
|
||||||
|
|
||||||
|
def determine_metadata(self, request, view):
|
||||||
|
metadata = super().determine_metadata(request, view)
|
||||||
|
|
||||||
|
if hasattr(view, "ordering_fields"):
|
||||||
|
metadata["sort"] = view.ordering_fields
|
||||||
|
|
||||||
|
return metadata
|
||||||
|
|
||||||
def determine_actions(self, request, view):
|
def determine_actions(self, request, view):
|
||||||
"""
|
"""
|
||||||
For generic class based views we return information about
|
For generic class based views we return information about
|
||||||
|
@ -13,6 +13,7 @@ from rest_framework.parsers import MultiPartParser, FormParser
|
|||||||
|
|
||||||
from apps.home.models import SubChannel, Filter, Subscription, SavedGuilds, TrackedContent, ArticleMutator
|
from apps.home.models import SubChannel, Filter, Subscription, SavedGuilds, TrackedContent, ArticleMutator
|
||||||
from apps.authentication.models import DiscordUser
|
from apps.authentication.models import DiscordUser
|
||||||
|
from .metadata import ExpandedMetadata
|
||||||
from .serializers import (
|
from .serializers import (
|
||||||
SubChannelSerializer,
|
SubChannelSerializer,
|
||||||
FilterSerializer,
|
FilterSerializer,
|
||||||
@ -108,10 +109,11 @@ class Filter_ListView(generics.ListCreateAPIView):
|
|||||||
|
|
||||||
pagination_class = DefaultPagination
|
pagination_class = DefaultPagination
|
||||||
serializer_class = FilterSerializer
|
serializer_class = FilterSerializer
|
||||||
|
metadata_class = ExpandedMetadata
|
||||||
|
|
||||||
filter_backends = [filters.SearchFilter, rest_filters.DjangoFilterBackend, filters.OrderingFilter]
|
filter_backends = [filters.SearchFilter, rest_filters.DjangoFilterBackend, filters.OrderingFilter]
|
||||||
filterset_fields = ["id", "name", "matching_algorithm", "match", "is_insensitive", "is_whitelist", "guild_id"]
|
filterset_fields = ["id", "name", "matching_algorithm", "match", "is_insensitive", "is_whitelist", "guild_id"]
|
||||||
search_fields = ["name", "keywords", "regex"]
|
search_fields = ["name", "match"]
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
if self.request.user.is_superuser:
|
if self.request.user.is_superuser:
|
||||||
@ -183,16 +185,15 @@ class Subscription_ListView(generics.ListCreateAPIView):
|
|||||||
permission_classes = [permissions.IsAuthenticated]
|
permission_classes = [permissions.IsAuthenticated]
|
||||||
|
|
||||||
pagination_class = DefaultPagination
|
pagination_class = DefaultPagination
|
||||||
# serializer_class = SubscriptionSerializer
|
metadata_class = ExpandedMetadata
|
||||||
# queryset = Subscription.objects.all().order_by("-creation_datetime")
|
|
||||||
|
|
||||||
filter_backends = [filters.SearchFilter, rest_filters.DjangoFilterBackend, filters.OrderingFilter]
|
filter_backends = [filters.SearchFilter, rest_filters.DjangoFilterBackend, filters.OrderingFilter]
|
||||||
filterset_fields = [
|
filterset_fields = [
|
||||||
"id", "name", "url", "guild_id", "creation_datetime", "extra_notes", "filters",
|
"id", "name", "url", "guild_id", "creation_datetime", "extra_notes", "filters",
|
||||||
"article_title_mutators", "article_desc_mutators", "embed_colour", "published_threshold", "active"
|
"article_title_mutators", "article_desc_mutators", "embed_colour", "published_threshold", "active"
|
||||||
]
|
]
|
||||||
search_fields = ["name", "extra_notes"]
|
search_fields = ["name", "url", "extra_notes"]
|
||||||
ordering_fields = ["creation_datetime", "guild_id"]
|
ordering_fields = ["creation_datetime", "channels_count"]
|
||||||
|
|
||||||
read_serializer_class = SubscriptionSerializer_GET
|
read_serializer_class = SubscriptionSerializer_GET
|
||||||
write_serializer_class = SubscriptionSerializer_POST
|
write_serializer_class = SubscriptionSerializer_POST
|
||||||
@ -243,9 +244,6 @@ class Subscription_DetailView(generics.RetrieveUpdateDestroyAPIView):
|
|||||||
permission_classes = [permissions.IsAuthenticated]
|
permission_classes = [permissions.IsAuthenticated]
|
||||||
parser_classes = [MultiPartParser, FormParser]
|
parser_classes = [MultiPartParser, FormParser]
|
||||||
|
|
||||||
# serializer_class = SubscriptionSerializer
|
|
||||||
# queryset = Subscription.objects.all().order_by("-creation_datetime")
|
|
||||||
|
|
||||||
serializer_class = SubscriptionSerializer_POST
|
serializer_class = SubscriptionSerializer_POST
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
@ -317,6 +315,7 @@ class SavedGuild_ListView(generics.ListCreateAPIView):
|
|||||||
|
|
||||||
pagination_class = None
|
pagination_class = None
|
||||||
serializer_class = SavedGuildSerializer
|
serializer_class = SavedGuildSerializer
|
||||||
|
metadata_class = ExpandedMetadata
|
||||||
|
|
||||||
filter_backends = [filters.SearchFilter, rest_filters.DjangoFilterBackend, filters.OrderingFilter]
|
filter_backends = [filters.SearchFilter, rest_filters.DjangoFilterBackend, filters.OrderingFilter]
|
||||||
filterset_fields = ["id", "guild_id", "name", "icon", "added_by", "permissions", "owner"]
|
filterset_fields = ["id", "guild_id", "name", "icon", "added_by", "permissions", "owner"]
|
||||||
@ -400,10 +399,13 @@ class TrackedContent_ListView(generics.ListCreateAPIView):
|
|||||||
permission_classes = [permissions.IsAuthenticated]
|
permission_classes = [permissions.IsAuthenticated]
|
||||||
|
|
||||||
pagination_class = DefaultPagination
|
pagination_class = DefaultPagination
|
||||||
|
metadata_class = ExpandedMetadata
|
||||||
queryset = TrackedContent.objects.all().order_by("-creation_datetime")
|
queryset = TrackedContent.objects.all().order_by("-creation_datetime")
|
||||||
|
|
||||||
filter_backends = [filters.SearchFilter, rest_filters.DjangoFilterBackend, filters.OrderingFilter]
|
filter_backends = [filters.SearchFilter, rest_filters.DjangoFilterBackend, filters.OrderingFilter]
|
||||||
filterset_fields = ["guid", "title", "url", "subscription", "subscription__guild_id", "channel_id", "blocked", "creation_datetime"]
|
filterset_fields = ["guid", "title", "url", "subscription", "subscription__guild_id", "channel_id", "blocked", "creation_datetime"]
|
||||||
|
search_fields = ["guid", "title", "url", "subscription__name", "subscription__url"]
|
||||||
|
ordering_fields = ["creation_datetime"]
|
||||||
|
|
||||||
read_serializer_class = TrackedContentSerializer_GET
|
read_serializer_class = TrackedContentSerializer_GET
|
||||||
write_serializer_class = TrackedContentSerializer_POST
|
write_serializer_class = TrackedContentSerializer_POST
|
||||||
@ -457,6 +459,7 @@ class ArticleMutator_ListView(generics.ListCreateAPIView):
|
|||||||
authentication_classes = [SessionAuthentication, TokenAuthentication]
|
authentication_classes = [SessionAuthentication, TokenAuthentication]
|
||||||
permission_classes = [permissions.IsAuthenticated]
|
permission_classes = [permissions.IsAuthenticated]
|
||||||
|
|
||||||
|
metadata_class = ExpandedMetadata
|
||||||
queryset = ArticleMutator.objects.all().order_by("id")
|
queryset = ArticleMutator.objects.all().order_by("id")
|
||||||
|
|
||||||
filter_backends = [filters.SearchFilter, rest_filters.DjangoFilterBackend, filters.OrderingFilter]
|
filter_backends = [filters.SearchFilter, rest_filters.DjangoFilterBackend, filters.OrderingFilter]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user