From 0f870d33b36b43a0910988e2cb23af555533d4bf Mon Sep 17 00:00:00 2001 From: Mario Raciti <mario.raciti@inaf.it> Date: Thu, 22 Apr 2021 15:43:51 +0200 Subject: [PATCH] TMSS-736: Add Metadata class skeleton for filtering and ordering in OPTIONS --- .../src/tmss/tmssapp/viewsets/CMakeLists.txt | 1 + .../src/tmss/tmssapp/viewsets/lofar_viewset.py | 3 +++ .../backend/src/tmss/tmssapp/viewsets/metadata.py | 15 +++++++++++++++ 3 files changed, 19 insertions(+) create mode 100644 SAS/TMSS/backend/src/tmss/tmssapp/viewsets/metadata.py diff --git a/SAS/TMSS/backend/src/tmss/tmssapp/viewsets/CMakeLists.txt b/SAS/TMSS/backend/src/tmss/tmssapp/viewsets/CMakeLists.txt index ab71ce95fb8..a65f9b06e65 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 86631f7c703..f3b050eed85 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 00000000000..dce59a925c4 --- /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 -- GitLab