diff --git a/SAS/TMSS/backend/src/tmss/tmssapp/viewsets/CMakeLists.txt b/SAS/TMSS/backend/src/tmss/tmssapp/viewsets/CMakeLists.txt index ab71ce95fb8cbf05bcc2533b2cec8bdd42956243..a65f9b06e65f25f5eff6b7c849250808d7e6770d 100644 --- a/SAS/TMSS/backend/src/tmss/tmssapp/viewsets/CMakeLists.txt +++ b/SAS/TMSS/backend/src/tmss/tmssapp/viewsets/CMakeLists.txt @@ -4,6 +4,7 @@ include(PythonInstall) set(_py_files __init__.py lofar_viewset.py + metadata.py specification.py scheduling.py permissions.py diff --git a/SAS/TMSS/backend/src/tmss/tmssapp/viewsets/lofar_viewset.py b/SAS/TMSS/backend/src/tmss/tmssapp/viewsets/lofar_viewset.py index 86631f7c703cddeff73e07c64400ef21a4b2963a..f3b050eed854513dc70ce8b9cc8b9b27ba573b4f 100644 --- a/SAS/TMSS/backend/src/tmss/tmssapp/viewsets/lofar_viewset.py +++ b/SAS/TMSS/backend/src/tmss/tmssapp/viewsets/lofar_viewset.py @@ -17,6 +17,7 @@ from django.http import JsonResponse from django.urls import reverse as revese_url from rest_framework.decorators import action from lofar.common import json_utils +from lofar.sas.tmss.tmss.tmssapp.viewsets.metadata import LOFARDefaultMetadata from lofar.sas.tmss.tmss.tmssapp.viewsets.permissions import TMSSPermissions, IsProjectMemberFilterBackend from lofar.sas.tmss.tmss.tmssapp.models import permissions from django_filters.rest_framework import DjangoFilterBackend, FilterSet, CharFilter @@ -25,6 +26,7 @@ from rest_framework.filters import OrderingFilter from django.contrib.postgres.fields import JSONField, ArrayField from copy import deepcopy + class LOFARDefaultFilterSet(FilterSet): FILTER_DEFAULTS = deepcopy(filterset.FILTER_FOR_DBFIELD_DEFAULTS) FILTER_DEFAULTS.update({ @@ -48,6 +50,7 @@ class LOFARViewSet(viewsets.ModelViewSet): the `format=None` keyword argument for each action. """ permission_classes = (TMSSPermissions,) + metadata_class = LOFARDefaultMetadata filter_backends = (LOFARFilterBackend, OrderingFilter, IsProjectMemberFilterBackend,) filter_fields = '__all__' diff --git a/SAS/TMSS/backend/src/tmss/tmssapp/viewsets/metadata.py b/SAS/TMSS/backend/src/tmss/tmssapp/viewsets/metadata.py new file mode 100644 index 0000000000000000000000000000000000000000..dce59a925c4de4faa4890d15ff3eb8e47f3a380d --- /dev/null +++ b/SAS/TMSS/backend/src/tmss/tmssapp/viewsets/metadata.py @@ -0,0 +1,15 @@ +from rest_framework.metadata import SimpleMetadata + +import logging +logger = logging.getLogger(__name__) + + +class LOFARDefaultMetadata(SimpleMetadata): + """ + Metadata class to include filtering and ordering info for `OPTIONS` requests. + """ + def determine_metadata(self, request, view): + metadata = super(LOFARDefaultMetadata, self).determine_metadata(request, view) + # TODO: Add filtering and ordering information. + + return metadata