1
0
Fork 0

Expose station_alt to observations API

For an observation we already save the TLE and return the station's
lattitude and longitude.  To accurately reconstruct the geometry of the
situation, we also need to return the station's altitude.

Closes #486
merge-requests/504/head
Dan White 2018-07-31 10:33:04 -05:00
parent a21916efbe
commit 9d65a862a4
1 changed files with 10 additions and 2 deletions

View File

@ -15,16 +15,18 @@ class ObservationSerializer(serializers.ModelSerializer):
station_name = serializers.SerializerMethodField()
station_lat = serializers.SerializerMethodField()
station_lng = serializers.SerializerMethodField()
station_alt = serializers.SerializerMethodField()
demoddata = DemodDataSerializer(many=True)
class Meta:
model = Observation
fields = ('id', 'start', 'end', 'ground_station', 'transmitter', 'norad_cat_id',
'payload', 'waterfall', 'demoddata', 'station_name', 'station_lat',
'station_lng', 'vetted_status', 'client_version', 'client_metadata')
'station_lng', 'station_alt', 'vetted_status', 'client_version',
'client_metadata')
read_only_fields = ['id', 'start', 'end', 'observation', 'ground_station',
'transmitter', 'norad_cat_id', 'station_name',
'station_lat', 'station_lng']
'station_lat', 'station_lng', 'station_alt']
def update(self, instance, validated_data):
validated_data.pop('demoddata')
@ -58,6 +60,12 @@ class ObservationSerializer(serializers.ModelSerializer):
except AttributeError:
return None
def get_station_alt(self, obj):
try:
return obj.ground_station.alt
except AttributeError:
return None
class StationSerializer(serializers.ModelSerializer):
antenna = serializers.SerializerMethodField()