From 7c886958264501039ba7d32ccbbd01a4d96779c1 Mon Sep 17 00:00:00 2001 From: Sanjin <102841251+duckduckgrayduck@users.noreply.github.com> Date: Wed, 16 Sep 2026 13:38:47 -0500 Subject: [PATCH] Fix documentation hierarchy --- documentcloud/addons/views.py | 3 +++ documentcloud/documents/views.py | 3 +++ documentcloud/entities/views.py | 2 ++ documentcloud/oembed/views.py | 1 + documentcloud/organizations/stats_api/views.py | 2 ++ documentcloud/organizations/views.py | 1 + documentcloud/projects/views.py | 1 + documentcloud/users/stats_api/views.py | 2 ++ documentcloud/users/views.py | 2 ++ 9 files changed, 17 insertions(+) diff --git a/documentcloud/addons/views.py b/documentcloud/addons/views.py index 5d66e099..95cd4c43 100644 --- a/documentcloud/addons/views.py +++ b/documentcloud/addons/views.py @@ -79,6 +79,7 @@ def domain_to_origin(value): return f"{parsed.scheme}://{parsed.netloc}".lower() +@extend_schema(tags=["addons"]) class AddOnViewSet(viewsets.ModelViewSet): serializer_class = AddOnSerializer queryset = AddOn.objects.none() @@ -508,6 +509,7 @@ class Meta: filterset_class = Filter +@extend_schema(tags=["addon_runs"]) class AddOnRunViewSet(FlexFieldsModelViewSet): serializer_class = AddOnRunSerializer queryset = AddOnRun.objects.none() @@ -816,6 +818,7 @@ class Meta: filterset_class = Filter +@extend_schema(tags=["addon_events"]) class AddOnEventViewSet(FlexFieldsModelViewSet): serializer_class = AddOnEventSerializer queryset = AddOnEvent.objects.none() diff --git a/documentcloud/documents/views.py b/documentcloud/documents/views.py index 914632f4..c38e0e39 100644 --- a/documentcloud/documents/views.py +++ b/documentcloud/documents/views.py @@ -114,6 +114,7 @@ def _max_updated_at(instances): return max((obj.updated_at for obj in instances), default=None) +@extend_schema(tags=["documents"]) @method_decorator(conditional_cache_control(no_cache=True), name="dispatch") @method_decorator(anonymous_cache_control, name="retrieve") class DocumentViewSet(BulkModelMixin, FlexFieldsModelViewSet): @@ -1407,6 +1408,7 @@ class Meta: filterset_class = Filter +@extend_schema(tags=["document_sections"]) @method_decorator(conditional_cache_control(no_cache=True), name="dispatch") class DocumentErrorViewSet( mixins.CreateModelMixin, mixins.ListModelMixin, viewsets.GenericViewSet @@ -1927,6 +1929,7 @@ def post_process(self, request, document_pk=None): return Response("OK", status=status.HTTP_200_OK) +@extend_schema(tags=["saved_searches"]) class SavedSearchViewSet(viewsets.ModelViewSet): serializer_class = SavedSearchSerializer permission_classes = (IsAuthenticated,) diff --git a/documentcloud/entities/views.py b/documentcloud/entities/views.py index 3347632b..9f34783a 100644 --- a/documentcloud/entities/views.py +++ b/documentcloud/entities/views.py @@ -26,6 +26,7 @@ ) +@extend_schema(tags=["entity"]) class EntityViewSet(BulkCreateModelMixin, viewsets.ModelViewSet): serializer_class = EntitySerializer queryset = Entity.objects.none() @@ -207,6 +208,7 @@ class Meta: filterset_class = Filter +@extend_schema(tags=["entity_occurrences"]) @method_decorator(conditional_cache_control(no_cache=True), name="dispatch") class EntityOccurrenceViewSet(BulkCreateModelMixin, viewsets.ModelViewSet): serializer_class = EntityOccurrenceSerializer diff --git a/documentcloud/oembed/views.py b/documentcloud/oembed/views.py index 45d951c1..b34cf58f 100644 --- a/documentcloud/oembed/views.py +++ b/documentcloud/oembed/views.py @@ -21,6 +21,7 @@ from documentcloud.oembed.registry import registry +@extend_schema(tags=["oembed"]) class OEmbedView(APIView): """The oembed endpoint responds with the appropriate code allowing you to embed the resource (document, page, project, etc) on your website. diff --git a/documentcloud/organizations/stats_api/views.py b/documentcloud/organizations/stats_api/views.py index e612d64e..7aa68285 100644 --- a/documentcloud/organizations/stats_api/views.py +++ b/documentcloud/organizations/stats_api/views.py @@ -13,6 +13,7 @@ # Third Party from django_filters import rest_framework as django_filters +from drf_spectacular.utils import extend_schema # DocumentCloud from documentcloud.core.pagination import CursorPagination @@ -23,6 +24,7 @@ ) +@extend_schema(exclude=True) class OrganizationStatsViewSet( mixins.ListModelMixin, mixins.RetrieveModelMixin, diff --git a/documentcloud/organizations/views.py b/documentcloud/organizations/views.py index 12a94a74..8785b475 100644 --- a/documentcloud/organizations/views.py +++ b/documentcloud/organizations/views.py @@ -20,6 +20,7 @@ ) +@extend_schema(tags=["organizations"]) class OrganizationViewSet(viewsets.ReadOnlyModelViewSet): serializer_class = OrganizationSerializer permission_classes = [DjangoObjectPermissions] diff --git a/documentcloud/projects/views.py b/documentcloud/projects/views.py index 9f6500dc..d01f34e4 100644 --- a/documentcloud/projects/views.py +++ b/documentcloud/projects/views.py @@ -49,6 +49,7 @@ def _solr_set(document): document.index_on_commit(field_updates=field_updates) +@extend_schema(tags=["projects"]) class ProjectViewSet(viewsets.ModelViewSet): serializer_class = ProjectSerializer queryset = Project.objects.none() diff --git a/documentcloud/users/stats_api/views.py b/documentcloud/users/stats_api/views.py index 9a585e72..ffae8872 100644 --- a/documentcloud/users/stats_api/views.py +++ b/documentcloud/users/stats_api/views.py @@ -13,6 +13,7 @@ # Third Party from django_filters import rest_framework as django_filters +from drf_spectacular.utils import extend_schema # DocumentCloud from documentcloud.core.pagination import CursorPagination @@ -22,6 +23,7 @@ from documentcloud.users.stats_api.serializers import UserStatsSerializer +@extend_schema(exclude=True) class UserStatsViewSet( mixins.ListModelMixin, mixins.RetrieveModelMixin, diff --git a/documentcloud/users/views.py b/documentcloud/users/views.py index a4af25c5..6390ec9d 100644 --- a/documentcloud/users/views.py +++ b/documentcloud/users/views.py @@ -23,6 +23,7 @@ from documentcloud.users.serializers import MessageSerializer, UserSerializer +@extend_schema(tags=["users"]) class UserViewSet( # Cannot create or destroy users FlexFieldsMixin, @@ -188,6 +189,7 @@ class Meta: filterset_class = Filter +@extend_schema(tags=["messages"]) class MessageView(APIView): """A view to allow you to email yourself via API"""