Skip to content
Snippets Groups Projects
Commit 0f870d33 authored by Mario Raciti's avatar Mario Raciti
Browse files

TMSS-736: Add Metadata class skeleton for filtering and ordering in OPTIONS

parent 322fa249
No related branches found
No related tags found
1 merge request!438Resolve TMSS-736
...@@ -4,6 +4,7 @@ include(PythonInstall) ...@@ -4,6 +4,7 @@ include(PythonInstall)
set(_py_files set(_py_files
__init__.py __init__.py
lofar_viewset.py lofar_viewset.py
metadata.py
specification.py specification.py
scheduling.py scheduling.py
permissions.py permissions.py
......
...@@ -17,6 +17,7 @@ from django.http import JsonResponse ...@@ -17,6 +17,7 @@ from django.http import JsonResponse
from django.urls import reverse as revese_url from django.urls import reverse as revese_url
from rest_framework.decorators import action from rest_framework.decorators import action
from lofar.common import json_utils 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.viewsets.permissions import TMSSPermissions, IsProjectMemberFilterBackend
from lofar.sas.tmss.tmss.tmssapp.models import permissions from lofar.sas.tmss.tmss.tmssapp.models import permissions
from django_filters.rest_framework import DjangoFilterBackend, FilterSet, CharFilter from django_filters.rest_framework import DjangoFilterBackend, FilterSet, CharFilter
...@@ -25,6 +26,7 @@ from rest_framework.filters import OrderingFilter ...@@ -25,6 +26,7 @@ from rest_framework.filters import OrderingFilter
from django.contrib.postgres.fields import JSONField, ArrayField from django.contrib.postgres.fields import JSONField, ArrayField
from copy import deepcopy from copy import deepcopy
class LOFARDefaultFilterSet(FilterSet): class LOFARDefaultFilterSet(FilterSet):
FILTER_DEFAULTS = deepcopy(filterset.FILTER_FOR_DBFIELD_DEFAULTS) FILTER_DEFAULTS = deepcopy(filterset.FILTER_FOR_DBFIELD_DEFAULTS)
FILTER_DEFAULTS.update({ FILTER_DEFAULTS.update({
...@@ -48,6 +50,7 @@ class LOFARViewSet(viewsets.ModelViewSet): ...@@ -48,6 +50,7 @@ class LOFARViewSet(viewsets.ModelViewSet):
the `format=None` keyword argument for each action. the `format=None` keyword argument for each action.
""" """
permission_classes = (TMSSPermissions,) permission_classes = (TMSSPermissions,)
metadata_class = LOFARDefaultMetadata
filter_backends = (LOFARFilterBackend, OrderingFilter, IsProjectMemberFilterBackend,) filter_backends = (LOFARFilterBackend, OrderingFilter, IsProjectMemberFilterBackend,)
filter_fields = '__all__' filter_fields = '__all__'
......
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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment