1
0
Fork 0

Add latest TLE to UI if possible

Fixes #264.

[v2:- Added docstrings]
Signed-off-by: Fabian P. Schmidt <kerel@mailbox.org>
merge-requests/329/head
Fabian P. Schmidt 2019-01-09 13:08:37 +01:00 committed by Fabian P. Schmidt
parent 2967e608c3
commit 4278c6caa0
4 changed files with 92 additions and 2 deletions

View File

@ -144,6 +144,28 @@ class Satellite(models.Model):
decoder_count = Telemetry.objects.filter(satellite=self.id).exclude(decoder='').count()
return decoder_count
@property
def tle_redistributable(self):
"""Returns True if re-distribution of the TLE is allowed, False otherwise
:returns: True if re-distribution of the TLE is allowed, False otherwise
"""
return self.tle_source in settings.TLE_SOURCES_REDISTRIBUTABLE
@property
def latest_tle(self):
"""Returns the latest TLE for this Satellite
:returns: dict with the latest TLE, it's source and whether redistribution is allowed
"""
return {
'source': self.tle_source,
'norad_cat_id': self.norad_cat_id,
'tle1': self.tle1,
'tle2': self.tle2,
'redistributable': self.tle_redistributable
}
def __str__(self):
return '{0} - {1}'.format(self.norad_cat_id, self.name)

View File

@ -296,6 +296,9 @@ DATA_FETCH_DAYS = config('DATA_FETCH_DAYS', default=10, cast=int)
MAPBOX_GEOCODE_URL = 'https://api.tiles.mapbox.com/v4/geocode/mapbox.places/'
MAPBOX_TOKEN = config('MAPBOX_TOKEN', default='')
# TLEs
TLE_SOURCES_REDISTRIBUTABLE = config('TLE_SOURCES_REDISTRIBUTABLE', default='manual', cast=Csv())
# Influx DB for decoded data_id
USE_INFLUX = config('USE_INFLUX', default=False, cast=bool)
INFLUX_HOST = config('INFLUX_HOST', default='localhost')

View File

@ -241,6 +241,10 @@ a.satellite-item:hover {
margin: 20px 0;
}
.panel-tle {
margin: 20px 0;
}
.panel-first {
margin-top: 20px;
}
@ -281,6 +285,10 @@ a.satellite-item:hover {
font-size: .8em;
}
.tle-element {
margin: 10px;
}
.info {
margin-top: 30px;
margin-bottom: 30px;

View File

@ -50,8 +50,8 @@
{% if satellite.status != 're-entered' %}
<div id="map"
data-name="{{ satellite.name }}"
data-tle1="{{ satellite.tle1 }}"
data-tle2="{{ satellite.tle2 }}"
data-tle1="{{ satellite.latest_tle.tle1 }}"
data-tle2="{{ satellite.latest_tle.tle2 }}"
data-mapboxtoken="{{ mapbox_token }}"></div>
{% endif %}
</div>
@ -513,6 +513,63 @@
</div>
{% endif %}
<!-- Orbital Elements Section -->
{% if satellite.latest_tle.redistributable %}
<div class="row">
<div class="col-md-12 satellite-panels">
<div class="panel panel-default panel-satellite">
<div class="panel-heading">
<div class="satellite-title">
Orbital Elements
</div>
</div>
<div class="row panel-body">
<div class="col-md-12">
<div class="row">
<div class="col-md-12">
<div class="panel panel-primary panel-tle">
<div class="panel-heading">
<h3 class="panel-title">
<span class="tle-title">Latest TLE</span>
</h3>
</div>
<div class="row panel-body">
<div class="col-md-12">
<div class="row tle-element">
<div class="col-md-2">
<span class="label label-default">NORAD ID</span>
</div>
<div class="col-md-10">
{{ satellite.latest_tle.norad_cat_id }}
</div>
</div>
<div class="row tle-element">
<div class="col-md-2">
<span class="label label-default">TLE source</span>
</div>
<div class="col-md-10">
{{ satellite.latest_tle.source }}
</div>
</div>
<div class="row tle-element">
<div class="col-md-2">
<span class="label label-default">TLE</span>
</div>
<div class="col-md-10">
<pre>{{ satellite.latest_tle.tle1 }}<br>{{ satellite.latest_tle.tle2 }}</pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
{% endif %}
<!-- Telemetry Frames Section -->
<!-- This is a hacky way of getting around slow db queries. See #237 -->