Skip to content

Commit

Permalink
Merge pull request #1405 from open-zaak/feature/1365-pagination-count
Browse files Browse the repository at this point in the history
⚡ optimize pagination count
  • Loading branch information
annashamray committed Jul 17, 2023
2 parents e55ea1c + 27498d0 commit 0732264
Show file tree
Hide file tree
Showing 15 changed files with 41 additions and 58 deletions.
5 changes: 3 additions & 2 deletions src/openzaak/components/autorisaties/api/viewsets.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,11 @@
from rest_framework import viewsets
from rest_framework.decorators import action
from rest_framework.generics import get_object_or_404
from rest_framework.pagination import PageNumberPagination
from vng_api_common.authorizations.models import Applicatie
from vng_api_common.viewsets import CheckQueryParamsMixin

from openzaak.utils.pagination import OptimizedPagination

from ._schema_overrides import ApplicatieConsumerAutoSchema
from .filters import ApplicatieFilter, ApplicatieRetrieveFilter
from .kanalen import KANAAL_AUTORISATIES
Expand Down Expand Up @@ -105,7 +106,7 @@ class ApplicatieViewSet(
)
serializer_class = ApplicatieSerializer
_filterset_class = ApplicatieFilter
pagination_class = PageNumberPagination
pagination_class = OptimizedPagination
lookup_field = "uuid"
permission_classes = (AutorisatiesAuthRequired,)
required_scopes = {
Expand Down
4 changes: 2 additions & 2 deletions src/openzaak/components/besluiten/api/viewsets.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
)
from rest_framework import mixins, viewsets
from rest_framework.exceptions import ValidationError
from rest_framework.pagination import PageNumberPagination
from vng_api_common.audittrails.viewsets import (
AuditTrailCreateMixin,
AuditTrailDestroyMixin,
Expand All @@ -24,6 +23,7 @@
from openzaak.components.zaken.api.utils import delete_remote_zaakbesluit
from openzaak.utils.api import delete_remote_oio
from openzaak.utils.data_filtering import ListFilterByAuthorizationsMixin
from openzaak.utils.pagination import OptimizedPagination
from openzaak.utils.permissions import AuthRequired

from ..models import Besluit, BesluitInformatieObject
Expand Down Expand Up @@ -115,7 +115,7 @@ class BesluitViewSet(
serializer_class = BesluitSerializer
filter_class = BesluitFilter
lookup_field = "uuid"
pagination_class = PageNumberPagination
pagination_class = OptimizedPagination
permission_classes = (BesluitAuthRequired,)
required_scopes = {
"list": SCOPE_BESLUITEN_ALLES_LEZEN,
Expand Down
4 changes: 2 additions & 2 deletions src/openzaak/components/catalogi/api/viewsets/besluittype.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@
from notifications_api_common.viewsets import NotificationViewSetMixin
from rest_framework import status, viewsets
from rest_framework.decorators import action
from rest_framework.pagination import PageNumberPagination
from vng_api_common.caching import conditional_retrieve
from vng_api_common.viewsets import CheckQueryParamsMixin

from openzaak.utils.pagination import OptimizedPagination
from openzaak.utils.permissions import AuthRequired
from openzaak.utils.schema import COMMON_ERROR_RESPONSES, use_ref

Expand Down Expand Up @@ -87,7 +87,7 @@ class BesluitTypeViewSet(
serializer_class = BesluitTypeSerializer
filterset_class = BesluitTypeFilter
lookup_field = "uuid"
pagination_class = PageNumberPagination
pagination_class = OptimizedPagination
permission_classes = (AuthRequired,)
required_scopes = {
"list": SCOPE_CATALOGI_READ,
Expand Down
4 changes: 2 additions & 2 deletions src/openzaak/components/catalogi/api/viewsets/catalogus.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# SPDX-License-Identifier: EUPL-1.2
# Copyright (C) 2019 - 2020 Dimpact
from rest_framework import mixins, viewsets
from rest_framework.pagination import PageNumberPagination
from vng_api_common.caching import conditional_retrieve
from vng_api_common.viewsets import CheckQueryParamsMixin

from openzaak.utils.pagination import OptimizedPagination
from openzaak.utils.permissions import AuthRequired

from ...models import Catalogus
Expand Down Expand Up @@ -63,7 +63,7 @@ class CatalogusViewSet(
serializer_class = CatalogusSerializer
filter_class = CatalogusFilter
lookup_field = "uuid"
pagination_class = PageNumberPagination
pagination_class = OptimizedPagination
permission_classes = (AuthRequired,)
required_scopes = {
"list": SCOPE_CATALOGI_READ,
Expand Down
4 changes: 2 additions & 2 deletions src/openzaak/components/catalogi/api/viewsets/eigenschap.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# SPDX-License-Identifier: EUPL-1.2
# Copyright (C) 2019 - 2020 Dimpact
from rest_framework import viewsets
from rest_framework.pagination import PageNumberPagination
from vng_api_common.caching import conditional_retrieve
from vng_api_common.viewsets import CheckQueryParamsMixin

from openzaak.components.catalogi.models import Eigenschap
from openzaak.utils.pagination import OptimizedPagination
from openzaak.utils.permissions import AuthRequired

from ..filters import EigenschapFilter
Expand Down Expand Up @@ -71,7 +71,7 @@ class EigenschapViewSet(
serializer_class = EigenschapSerializer
filterset_class = EigenschapFilter
lookup_field = "uuid"
pagination_class = PageNumberPagination
pagination_class = OptimizedPagination
permission_classes = (AuthRequired,)
required_scopes = {
"list": SCOPE_CATALOGI_READ,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@
from notifications_api_common.viewsets import NotificationViewSetMixin
from rest_framework import status, viewsets
from rest_framework.decorators import action
from rest_framework.pagination import PageNumberPagination
from vng_api_common.caching import conditional_retrieve
from vng_api_common.viewsets import CheckQueryParamsMixin

from openzaak.utils.pagination import OptimizedPagination
from openzaak.utils.permissions import AuthRequired
from openzaak.utils.schema import COMMON_ERROR_RESPONSES, use_ref

Expand Down Expand Up @@ -86,7 +86,7 @@ class InformatieObjectTypeViewSet(
serializer_class = InformatieObjectTypeSerializer
filterset_class = InformatieObjectTypeFilter
lookup_field = "uuid"
pagination_class = PageNumberPagination
pagination_class = OptimizedPagination
permission_classes = (AuthRequired,)
required_scopes = {
"list": SCOPE_CATALOGI_READ,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@

from rest_framework import viewsets
from rest_framework.exceptions import ValidationError
from rest_framework.pagination import PageNumberPagination
from vng_api_common.caching import conditional_retrieve
from vng_api_common.viewsets import CheckQueryParamsMixin

from openzaak.utils.pagination import OptimizedPagination
from openzaak.utils.permissions import AuthRequired
from openzaak.utils.schema import AutoSchema

Expand Down Expand Up @@ -96,7 +96,7 @@ class ZaakTypeInformatieObjectTypeViewSet(
serializer_class = ZaakTypeInformatieObjectTypeSerializer
filterset_class = ZaakTypeInformatieObjectTypeFilter
lookup_field = "uuid"
pagination_class = PageNumberPagination
pagination_class = OptimizedPagination
permission_classes = (AuthRequired,)
required_scopes = {
"list": SCOPE_CATALOGI_READ,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# SPDX-License-Identifier: EUPL-1.2
# Copyright (C) 2019 - 2020 Dimpact
from rest_framework import viewsets
from rest_framework.pagination import PageNumberPagination
from vng_api_common.caching import conditional_retrieve
from vng_api_common.viewsets import CheckQueryParamsMixin

from openzaak.utils.pagination import OptimizedPagination
from openzaak.utils.permissions import AuthRequired

from ...models import ResultaatType
Expand Down Expand Up @@ -67,7 +67,7 @@ class ResultaatTypeViewSet(
serializer_class = ResultaatTypeSerializer
filter_class = ResultaatTypeFilter
lookup_field = "uuid"
pagination_class = PageNumberPagination
pagination_class = OptimizedPagination
permission_classes = (AuthRequired,)
required_scopes = {
"list": SCOPE_CATALOGI_READ,
Expand Down
4 changes: 2 additions & 2 deletions src/openzaak/components/catalogi/api/viewsets/roltype.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# SPDX-License-Identifier: EUPL-1.2
# Copyright (C) 2019 - 2020 Dimpact
from rest_framework import viewsets
from rest_framework.pagination import PageNumberPagination
from vng_api_common.caching import conditional_retrieve
from vng_api_common.viewsets import CheckQueryParamsMixin

from openzaak.utils.pagination import OptimizedPagination
from openzaak.utils.permissions import AuthRequired

from ...models import RolType
Expand Down Expand Up @@ -67,7 +67,7 @@ class RolTypeViewSet(
serializer_class = RolTypeSerializer
filterset_class = RolTypeFilter
lookup_field = "uuid"
pagination_class = PageNumberPagination
pagination_class = OptimizedPagination
permission_classes = (AuthRequired,)
required_scopes = {
"list": SCOPE_CATALOGI_READ,
Expand Down
4 changes: 2 additions & 2 deletions src/openzaak/components/catalogi/api/viewsets/statustype.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# SPDX-License-Identifier: EUPL-1.2
# Copyright (C) 2019 - 2020 Dimpact
from rest_framework import viewsets
from rest_framework.pagination import PageNumberPagination
from vng_api_common.caching import conditional_retrieve
from vng_api_common.viewsets import CheckQueryParamsMixin

from openzaak.utils.pagination import OptimizedPagination
from openzaak.utils.permissions import AuthRequired

from ...models import StatusType
Expand Down Expand Up @@ -71,7 +71,7 @@ class StatusTypeViewSet(
serializer_class = StatusTypeSerializer
filterset_class = StatusTypeFilter
lookup_field = "uuid"
pagination_class = PageNumberPagination
pagination_class = OptimizedPagination
permission_classes = (AuthRequired,)
required_scopes = {
"list": SCOPE_CATALOGI_READ,
Expand Down
4 changes: 2 additions & 2 deletions src/openzaak/components/catalogi/api/viewsets/zaaktype.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@
from notifications_api_common.viewsets import NotificationViewSetMixin
from rest_framework import status, viewsets
from rest_framework.decorators import action
from rest_framework.pagination import PageNumberPagination
from rest_framework.response import Response
from rest_framework.serializers import ValidationError
from rest_framework.settings import api_settings
from vng_api_common.caching import conditional_retrieve
from vng_api_common.viewsets import CheckQueryParamsMixin

from openzaak.utils.pagination import OptimizedPagination
from openzaak.utils.permissions import AuthRequired
from openzaak.utils.schema import COMMON_ERROR_RESPONSES, use_ref

Expand Down Expand Up @@ -109,7 +109,7 @@ class ZaakTypeViewSet(
serializer_class = ZaakTypeSerializer
lookup_field = "uuid"
filterset_class = ZaakTypeFilter
pagination_class = PageNumberPagination
pagination_class = OptimizedPagination
permission_classes = (AuthRequired,)
required_scopes = {
"list": SCOPE_CATALOGI_READ,
Expand Down
23 changes: 0 additions & 23 deletions src/openzaak/components/documenten/api/pagination.py

This file was deleted.

10 changes: 8 additions & 2 deletions src/openzaak/components/documenten/api/viewsets.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
from notifications_api_common.viewsets import NotificationViewSetMixin
from rest_framework import mixins, status, viewsets
from rest_framework.decorators import action
from rest_framework.pagination import PageNumberPagination
from rest_framework.parsers import FormParser, MultiPartParser
from rest_framework.response import Response
from rest_framework.serializers import ValidationError
Expand All @@ -24,6 +25,7 @@

from openzaak.utils.data_filtering import ListFilterByAuthorizationsMixin
from openzaak.utils.mixins import CMISConnectionPoolMixin, ConvertCMISAdapterExceptions
from openzaak.utils.pagination import OptimizedPagination
from openzaak.utils.permissions import AuthRequired
from openzaak.utils.schema import COMMON_ERROR_RESPONSES, use_ref

Expand All @@ -43,7 +45,6 @@
)
from .kanalen import KANAAL_DOCUMENTEN
from .mixins import UpdateWithoutPartialMixin
from .pagination import EnkelvoudigInformatieObjectPagination
from .permissions import InformationObjectAuthRequired
from .renderers import BinaryFileRenderer
from .scopes import (
Expand Down Expand Up @@ -193,7 +194,6 @@ class EnkelvoudigInformatieObjectViewSet(
)
lookup_field = "uuid"
serializer_class = EnkelvoudigInformatieObjectSerializer
pagination_class = EnkelvoudigInformatieObjectPagination
permission_classes = (InformationObjectAuthRequired,)
required_scopes = {
"list": SCOPE_DOCUMENTEN_ALLES_LEZEN,
Expand Down Expand Up @@ -256,6 +256,12 @@ def get_serializer_class(self):
return EnkelvoudigInformatieObjectCreateLockSerializer
return super().get_serializer_class()

@property
def pagination_class(self):
if settings.CMIS_ENABLED:
return PageNumberPagination
return OptimizedPagination

@swagger_auto_schema(
manual_parameters=[VERSIE_QUERY_PARAM, REGISTRATIE_QUERY_PARAM]
)
Expand Down
15 changes: 7 additions & 8 deletions src/openzaak/components/zaken/api/viewsets.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
from rest_framework import mixins, serializers, viewsets
from rest_framework.decorators import action
from rest_framework.exceptions import PermissionDenied, ValidationError
from rest_framework.pagination import PageNumberPagination
from rest_framework.reverse import reverse
from rest_framework.settings import api_settings
from vng_api_common.audittrails.viewsets import (
Expand All @@ -41,6 +40,7 @@
)
from openzaak.utils.data_filtering import ListFilterByAuthorizationsMixin
from openzaak.utils.filters import SearchOrderingFilter
from openzaak.utils.pagination import OptimizedPagination
from openzaak.utils.permissions import AuthRequired

from ..models import (
Expand Down Expand Up @@ -72,7 +72,6 @@
)
from .kanalen import KANAAL_ZAKEN
from .mixins import ClosedZaakMixin
from .pagination import ZaakPagination
from .permissions import ZaakAuthRequired, ZaakNestedAuthRequired
from .scopes import (
SCOPE_STATUSSEN_TOEVOEGEN,
Expand Down Expand Up @@ -243,7 +242,7 @@ class ZaakViewSet(
filterset_class = ZaakFilter
ordering_fields = ("startdatum",)
lookup_field = "uuid"
pagination_class = ZaakPagination
pagination_class = OptimizedPagination

permission_classes = (ZaakAuthRequired,)
required_scopes = {
Expand Down Expand Up @@ -428,7 +427,7 @@ class StatusViewSet(
serializer_class = StatusSerializer
filterset_class = StatusFilter
lookup_field = "uuid"
pagination_class = PageNumberPagination
pagination_class = OptimizedPagination

permission_classes = (ZaakAuthRequired,)
permission_main_object = "zaak"
Expand Down Expand Up @@ -545,7 +544,7 @@ class ZaakObjectViewSet(
serializer_class = ZaakObjectSerializer
filterset_class = ZaakObjectFilter
lookup_field = "uuid"
pagination_class = PageNumberPagination
pagination_class = OptimizedPagination

permission_classes = (ZaakAuthRequired,)
permission_main_object = "zaak"
Expand Down Expand Up @@ -816,7 +815,7 @@ class KlantContactViewSet(
serializer_class = KlantContactSerializer
filterset_class = KlantContactFilter
lookup_field = "uuid"
pagination_class = PageNumberPagination
pagination_class = OptimizedPagination

permission_classes = (ZaakAuthRequired,)
permission_main_object = "zaak"
Expand Down Expand Up @@ -886,7 +885,7 @@ class RolViewSet(
serializer_class = RolSerializer
filterset_class = RolFilter
lookup_field = "uuid"
pagination_class = PageNumberPagination
pagination_class = OptimizedPagination

permission_classes = (ZaakAuthRequired,)
permission_main_object = "zaak"
Expand Down Expand Up @@ -956,7 +955,7 @@ class ResultaatViewSet(
serializer_class = ResultaatSerializer
filterset_class = ResultaatFilter
lookup_field = "uuid"
pagination_class = PageNumberPagination
pagination_class = OptimizedPagination

permission_classes = (ZaakAuthRequired,)
permission_main_object = "zaak"
Expand Down

0 comments on commit 0732264

Please sign in to comment.