1
0
Fork 0

Add success rate info per satellite

merge-requests/360/head
Pierros Papadeas 2017-06-06 20:25:54 +03:00 committed by Nikos Roussos
parent 2cccac06fb
commit c230e03c18
No known key found for this signature in database
GPG Key ID: BADFF1767BA7C8E1
8 changed files with 118 additions and 24 deletions

View File

@ -170,6 +170,46 @@ class Satellite(models.Model):
except:
return False
@property
def data_count(self):
return Data.objects.filter(observation__satellite=self).count()
@property
def verified_count(self):
data = Data.objects.filter(observation__satellite=self)
return data.filter(vetted_status='verified').count()
@property
def empty_count(self):
data = Data.objects.filter(observation__satellite=self)
return data.filter(vetted_status='no_data').count()
@property
def unknown_count(self):
data = Data.objects.filter(observation__satellite=self)
return data.filter(vetted_status='unknown').count()
@property
def success_rate(self):
try:
return int(100 * (float(self.verified_count) / float(self.data_count)))
except:
return 0
@property
def empty_rate(self):
try:
return int(100 * (float(self.empty_count) / float(self.data_count)))
except:
return 0
@property
def unknown_rate(self):
try:
return int(100 * (float(self.unknown_count) / float(self.data_count)))
except:
return 0
def __unicode__(self):
return self.name

View File

@ -616,6 +616,13 @@ def station_view(request, id):
'debug': observer.next_pass(sat_ephem),
'name': str(satellite.name),
'id': str(satellite.id),
'success_rate': str(satellite.success_rate),
'unknown_rate': str(satellite.unknown_rate),
'empty_rate': str(satellite.empty_rate),
'data_count': str(satellite.data_count),
'verified_count': str(satellite.verified_count),
'empty_count': str(satellite.empty_count),
'unknown_count': str(satellite.unknown_count),
'norad_cat_id': str(satellite.norad_cat_id),
'tr': tr.datetime(), # Rise time
'azr': azimuth_r, # Rise Azimuth
@ -689,6 +696,11 @@ def satellite_view(request, id):
'name': sat.name,
'names': sat.names,
'image': sat.image,
'success_rate': sat.success_rate,
'verified_count': sat.verified_count,
'empty_count': sat.empty_count,
'unknown_count': sat.unknown_count,
'data_count': sat.data_count,
}
return JsonResponse(data, safe=False)

View File

@ -216,6 +216,10 @@ CSP_IMG_SRC = (
'https://*.satnogs.org',
'https://*.google-analytics.com',
)
CSP_STYLE_SRC = (
"'self'",
"'unsafe-inline'",
)
# Database

View File

@ -420,7 +420,7 @@ span.datetime-time {
==================== */
.satellite-info {
margin-bottom: 40px;
margin-bottom: 20px;
}
#SatelliteModal li {
@ -456,3 +456,8 @@ span.datetime-time {
visibility: visible;
position: initial;
}
.satellite-success {
width: 100px;
margin-top: 20px;
}

View File

@ -12,10 +12,14 @@ $(document).ready(function() {
modal.find('.satellite-title').text(data.name);
modal.find('.satellite-names').text(data.names);
modal.find('#SatelliteModalTitle').text(data.name);
modal.find('.satellite-id').text('Norad ID ' + satlink.data('id'));
modal.find('.satellite-id').text(satlink.data('id'));
modal.find('#db-link').attr('href', 'https://db.satnogs.org/satellite/' + satlink.data('id'));
modal.find('#new-obs-link').attr('href', '/observations/new/?norad=' + satlink.data('id'));
modal.find('#old-obs-link').attr('href', '/observations/?norad=' + satlink.data('id'));
modal.find('.satellite-success').text(data.success_rate + '% success on ' + data.data_count + ' observations');
modal.find('.satellite-verified').text(data.verified_count);
modal.find('.satellite-unknown').text(data.unknown_count);
modal.find('.satellite-empty').text(data.empty_count);
if (data.image) {
modal.find('.satellite-img-full').attr('src', data.image);
} else {

View File

@ -4,10 +4,10 @@ $(document).ready(function() {
'use strict';
// Render Station success rate
var success_rate = $('.progress-bar-success').data('success-rate');
var percentagerest = $('.progress-bar-danger').data('percentagerest');
$('.progress-bar-success').css('width', success_rate + '%');
$('.progress-bar-danger').css('width', percentagerest + '%');
var success_rate = $('.gs.progress-bar-success').data('success-rate');
var percentagerest = $('.gs.progress-bar-danger').data('percentagerest');
$('.gs.progress-bar-success').css('width', success_rate + '%');
$('.gs.progress-bar-danger').css('width', percentagerest + '%');
// Reading data for station
var station_info = $('#station-info').data();

View File

@ -97,10 +97,10 @@
<span class="label label-default">Success Rate</span>
<span class="gs-front-data">
<div class="progress" title="{{ station.success_rate }}%">
<div class="progress-bar progress-bar-success" data-success-rate="{{ station.success_rate }}">
<div class="gs progress-bar progress-bar-success" data-success-rate="{{ station.success_rate }}">
<span class="sr-only">{{ station.success_rate }}% Complete (success)</span>
</div>
<div class="progress-bar progress-bar-danger" data-percentagerest="{{ station.success_rate|percentagerest }}">
<div class="gs progress-bar progress-bar-danger" data-percentagerest="{{ station.success_rate|percentagerest }}">
<span class="sr-only">{{ station.success_rate|percentagerest }}% Complete (danger)</span>
</div>
</div>
@ -178,7 +178,7 @@
</thead>
<tbody>
{% regroup station.data_set.all by observation as observations %}
{% for observation in observations %}
{% for observation in observations|slice:":30" %}
<tr>
<td>
<a href="{% url 'base:observation_view' id=observation.grouper.id %}">
@ -258,6 +258,20 @@
<a href="#" data-toggle="modal" data-target="#SatelliteModal" data-id="{{ nextpass.norad_cat_id }}">
{{ nextpass.norad_cat_id }} - {{ nextpass.name }}
</a>
<div class="progress satellite-success">
<div class="progress-bar progress-bar-success" style="width: {{ nextpass.success_rate }}%"
data-toggle="tooltip" data-placement="bottom" title="{{ nextpass.success_rate }}% ({{ nextpass.verified_count }}) Verified">
<span class="sr-only">{{ nextpass.success_rate }}% Verified</span>
</div>
<div class="progress-bar progress-bar-warning" style="width: {{ nextpass.unknown_rate }}%"
data-toggle="tooltip" data-placement="bottom" title="{{ nextpass.unknown_rate }}% ({{ nextpass.unknown_count }}) Unknown">
<span class="sr-only">{{ nextpass.unknown_rate }}% Unknown</span>
</div>
<div class="progress-bar progress-bar-danger" style="width: {{ nextpass.empty_rate }}%"
data-toggle="tooltip" data-placement="bottom" title="{{ nextpass.empty_rate }}% ({{ nextpass.empty_count }}) Empty">
<span class="sr-only">{{ nextpass.empty_rate }}% Empty</span>
</div>
</div>
</td>
<td>
<span class="datetime-date">{{ nextpass.tr|date:"Y-m-d" }}</span>

View File

@ -18,23 +18,38 @@
<span class="satellite-names"></span>
</div>
<div class="satellite-info">
<span class="label label-default">NORAD ID</span>
<span class="satellite-id"></span>
</div>
<ul class="list-unstyled">
<li>
<span class="glyphicon glyphicon-plus" aria-hidden="true"></span>
<a href="/observations/new/" id="new-obs-link">Schedule new Observation</a>
</li>
<li>
<span class="glyphicon glyphicon-list-alt" aria-hidden="true"></span>
<a href="/observations/" id="old-obs-link">Past Observations</a>
</li>
<li>&nbsp;</li>
<li>
<span class="glyphicon glyphicon-new-window" aria-hidden="true"></span>
<a href="https://db.satnogs.org/" target="_blank" id="db-link">SatNOGS DB Entry & Data</a>
</li>
</ul>
<div class="satellite-info">
<ul class="list-unstyled">
<li>
<span class="satellite-success"></span>
</li>
<li>
<span class="label label-success satellite-verified" data-toggle="tooltip" data-placement="bottom" title="Successful observations"></span>
<span class="label label-warning satellite-unknown" data-toggle="tooltip" data-placement="bottom" title="Unknown observations"></span>
<span class="label label-danger satellite-empty" data-toggle="tooltip" data-placement="bottom" title="Empty observations"></span>
</li>
</ul>
</div>
<div class="satellite-info">
<ul class="list-unstyled">
<li>
<span class="glyphicon glyphicon-plus" aria-hidden="true"></span>
<a href="/observations/new/" id="new-obs-link">Schedule new Observation</a>
</li>
<li>
<span class="glyphicon glyphicon-list-alt" aria-hidden="true"></span>
<a href="/observations/" id="old-obs-link">Past Observations</a>
</li>
<li>&nbsp;</li>
<li>
<span class="glyphicon glyphicon-new-window" aria-hidden="true"></span>
<a href="https://db.satnogs.org/" target="_blank" id="db-link">SatNOGS DB Entry & Data</a>
</li>
</ul>
</div>
</div>
</div>
</div>