diff --git a/network/api/views.py b/network/api/views.py index 2cd54ad..923363d 100644 --- a/network/api/views.py +++ b/network/api/views.py @@ -1,3 +1,4 @@ +import django_filters from rest_framework import viewsets, mixins from network.api.perms import StationOwnerCanEditPermission @@ -31,10 +32,22 @@ class ObservationView(viewsets.ModelViewSet): serializer_class = serializers.ObservationSerializer -class DataView(viewsets.ReadOnlyModelViewSet, - mixins.UpdateModelMixin): +class DataFilter(django_filters.FilterSet): + class Meta: + model = Data + fields = ['start', 'end', 'ground_station'] + + +class DataView(viewsets.ReadOnlyModelViewSet, mixins.UpdateModelMixin): queryset = Data.objects.all() serializer_class = serializers.DataSerializer + filter_class = DataFilter permission_classes = [ StationOwnerCanEditPermission ] + + def get_queryset(self): + payload = self.request.QUERY_PARAMS.get('payload', None) + if payload == '': + return self.queryset.filter(payload='') + return super(DataView, self).get_queryset() diff --git a/network/settings/base.py b/network/settings/base.py index f2efb61..e1fe7f7 100644 --- a/network/settings/base.py +++ b/network/settings/base.py @@ -156,3 +156,7 @@ SECRET_KEY = getenv('DJANGO_SECRET_KEY', 'changeme') import dj_database_url DATABASE_URL = getenv('DJANGO_DATABASE_URL', 'sqlite:///db.sqlite3') DATABASES = {'default': dj_database_url.parse(DATABASE_URL)} + +REST_FRAMEWORK = { + 'DEFAULT_FILTER_BACKENDS': ('rest_framework.filters.DjangoFilterBackend',) +}