1
0
Fork 0
satnogs-network/network/api/views.py

61 lines
1.8 KiB
Python
Raw Normal View History

2015-02-14 07:15:26 -07:00
import django_filters
2014-12-13 10:49:15 -07:00
from rest_framework import viewsets, mixins
2014-10-15 13:20:46 -06:00
2014-12-19 06:06:58 -07:00
from network.api.perms import StationOwnerCanEditPermission
from network.api import serializers
from network.base.models import (Antenna, Data, Observation, Satellite,
Station, Transponder)
2014-10-15 13:20:46 -06:00
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
2015-02-14 07:15:26 -07:00
class DataFilter(django_filters.FilterSet):
class Meta:
model = Data
fields = ['start', 'end', 'ground_station']
class DataView(viewsets.ReadOnlyModelViewSet, mixins.UpdateModelMixin):
2014-10-15 13:20:46 -06:00
queryset = Data.objects.all()
serializer_class = serializers.DataSerializer
2015-02-14 07:15:26 -07:00
filter_class = DataFilter
2014-12-13 10:49:15 -07:00
permission_classes = [
StationOwnerCanEditPermission
]
2015-02-14 07:15:26 -07:00
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()
2015-02-14 12:58:11 -07:00
class JobView(viewsets.ReadOnlyModelViewSet):
queryset = Data.objects.filter(payload='')
serializer_class = serializers.JobSerializer
filter_class = DataFilter
filter_fields = ('ground_station')