diff --git a/apps/api/views.py b/apps/api/views.py index af4dd34..6c0fb45 100644 --- a/apps/api/views.py +++ b/apps/api/views.py @@ -86,9 +86,9 @@ class DeletableDetailView(generics.RetrieveDestroyAPIView): class Server_ListView(ListView): - filterset_fields = [] - search_fields = [] - ordering_fields = [] + filterset_fields = ("id", "name", "icon_hash", "active") + search_fields = ("name") + ordering_fields = ("id", "name", "active") serializer_class = ServerSerializer def get_queryset(self): @@ -105,26 +105,28 @@ class Server_DetailView(DetailView): class ContentFilter_ListView(ListCreateView): - filterset_fields = [] - search_fields = [] - ordering_fields = [] + filterset_fields = ("id", "server", "name", "match", "matching_algorithm", "is_insensitive", "is_whitelist") + search_fields = ("server", "name", "match") + ordering_fields = ("id", "server", "name", "match", "matching_algorithm", "is_insensitive", "is_whitelist") serializer_class = ContentFilterSerializer def get_queryset(self): - return ContentFilter.objects.all() + servers = ServerMember.objects.filter(user=self.request.user).values_list("server", flat=True) + return ContentFilter.objects.filter(server__in=servers) class ContentFilter_DetailView(ChangableDetailView): serializer_class = ContentFilterSerializer def get_queryset(self): - return ContentFilter.objects.all() + servers = ServerMember.objects.filter(user=self.request.user).values_list("server", flat=True) + return ContentFilter.objects.filter(server__in=servers) class MessageMutator_ListView(ListView): # instances of this one are pre-defined ONLY - filterset_fields = [] - search_fields = [] - ordering_fields = [] + filterset_fields = ("id", "name", "value") + search_fields = ("name", "value") + ordering_fields = ("id", "name", "value") serializer_class = MessageMutatorSerializer def get_queryset(self): @@ -139,9 +141,8 @@ class MessageMutator_DetailView(DetailView): class MessageStyle_ListView(ListCreateView): - filterset_fields = [] - search_fields = [] - ordering_fields = [] + filterset_fields = ("id", "server", "is_embed", "is_hyperlinked", "show_author", "show_timestamp", "show_images", "fetch_images", "title_mutator", "description_mutator") + ordering_fields = ("id", "server", "is_embed", "is_hyperlinked", "show_author", "show_timestamp", "show_images", "fetch_images") serializer_class = MessageStyleSerializer def get_queryset(self): @@ -156,43 +157,47 @@ class MessageStyle_DetailView(ChangableDetailView): class Subscription_ListView(ListCreateView): - filterset_fields = [] - search_fields = [] - ordering_fields = [] + filterset_fields = ("id", "server", "name", "url", "created_at", "updated_at", "extra_notes", "active", "filters", "message_style", "unique_rules") + search_fields = ("server", "name", "url", "extra_notes") + ordering_fields = ("id", "server", "name", "url", "created_at", "updated_at", "extra_notes", "active", "message_style") serializer_class = SubscriptionSerializer def get_queryset(self): - return Subscription.objects.all() + servers = ServerMember.objects.filter(user=self.request.user).values_list("server", flat=True) + return Subscription.objects.filter(server__in=servers) class Subscription_DetailView(ChangableDetailView): serializer_class = SubscriptionSerializer def get_queryset(self): - return Subscription.objects.all() + servers = ServerMember.objects.filter(user=self.request.user).values_list("server", flat=True) + return Subscription.objects.filter(server__in=servers) class Content_ListView(ListCreateView): - filterset_fields = [] - search_fields = [] - ordering_fields = [] + filterset_fields = ("id", "subscription", "item_id", "item_guid", "item_url", "item_title", "item_content_hash") + search_fields = ("subscription", "item_id", "item_guid", "item_url", "item_title", "item_content_hash") + ordering_fields = ("id", "subscription", "item_id", "item_guid", "item_url", "item_title", "item_content_hash") serializer_class = ContentSerializer def get_queryset(self): - return Content.objects.all() + servers = ServerMember.objects.filter(user=self.request.user).values_list("server", flat=True) + return Content.objects.filter(server__in=servers) class Content_DetailView(ChangableDetailView): serializer_class = ContentSerializer def get_queryset(self): - return Content.objects.all() + servers = ServerMember.objects.filter(user=self.request.user).values_list("server", flat=True) + return Content.objects.filter(server__in=servers) class UniqueContentRule_ListView(ListCreateView): - filterset_fields = [] - search_fields = [] - ordering_fields = [] + filterset_fields = ("id", "name", "value") + search_fields = ("name", "value") + ordering_fields = ("id", "name", "value") serializer_class = UniqueContentRuleSerializer def get_queryset(self):