61 lines
1.8 KiB
Python
61 lines
1.8 KiB
Python
import django_filters
|
|
from rest_framework import viewsets, mixins
|
|
|
|
from network.api.perms import StationOwnerCanEditPermission
|
|
from network.api import serializers
|
|
from network.base.models import (Antenna, Data, Observation, Satellite,
|
|
Station, Transponder)
|
|
|
|
|
|
class AntennaView(viewsets.ModelViewSet):
|
|
queryset = Antenna.objects.all()
|
|
serializer_class = serializers.AntennaSerializer
|
|
|
|
|
|
class StationView(viewsets.ModelViewSet):
|
|
queryset = Station.objects.all()
|
|
serializer_class = serializers.StationSerializer
|
|
|
|
|
|
class SatelliteView(viewsets.ModelViewSet):
|
|
queryset = Satellite.objects.all()
|
|
serializer_class = serializers.SatelliteSerializer
|
|
|
|
|
|
class TransponderView(viewsets.ModelViewSet):
|
|
queryset = Transponder.objects.all()
|
|
serializer_class = serializers.TransponderSerializer
|
|
|
|
|
|
class ObservationView(viewsets.ModelViewSet):
|
|
queryset = Observation.objects.all()
|
|
serializer_class = serializers.ObservationSerializer
|
|
|
|
|
|
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()
|
|
|
|
|
|
class JobView(viewsets.ReadOnlyModelViewSet):
|
|
queryset = Data.objects.filter(payload='')
|
|
serializer_class = serializers.JobSerializer
|
|
filter_class = DataFilter
|
|
filter_fields = ('ground_station')
|