Add cache on transmiters rating
parent
64d98cae9a
commit
e4f92aad2e
|
@ -381,39 +381,72 @@ class Transmitter(models.Model):
|
|||
|
||||
@property
|
||||
def good_count(self):
|
||||
data = Observation.objects.filter(transmitter=self)
|
||||
return data.filter(vetted_status='good').count()
|
||||
data = cache.get('tr-{0}-suc-count'.format(self.uuid))
|
||||
if data is None:
|
||||
obs = Observation.objects.filter(transmitter=self)
|
||||
data = obs.filter(vetted_status='good').count()
|
||||
cache.set('tr-{0}-suc-count'.format(self.uuid), data)
|
||||
return data
|
||||
return data
|
||||
|
||||
@property
|
||||
def bad_count(self):
|
||||
data = Observation.objects.filter(transmitter=self)
|
||||
return data.filter(vetted_status='bad').count()
|
||||
data = cache.get('tr-{0}-bad-count'.format(self.uuid))
|
||||
if data is None:
|
||||
obs = Observation.objects.filter(transmitter=self)
|
||||
data = obs.filter(vetted_status='bad').count()
|
||||
cache.set('tr-{0}-bad-count'.format(self.uuid), data)
|
||||
return data
|
||||
return data
|
||||
|
||||
@property
|
||||
def unknown_count(self):
|
||||
data = Observation.objects.filter(transmitter=self)
|
||||
return data.filter(vetted_status='unknown').count()
|
||||
data = cache.get('tr-{0}-unk-count'.format(self.uuid))
|
||||
if data is None:
|
||||
obs = Observation.objects.filter(transmitter=self)
|
||||
data = obs.filter(vetted_status='unknown').count()
|
||||
cache.set('tr-{0}-unk-count'.format(self.uuid), data)
|
||||
return data
|
||||
return data
|
||||
|
||||
@property
|
||||
def success_rate(self):
|
||||
try:
|
||||
return int(100 * (float(self.good_count) / float(self.data_count)))
|
||||
except (ZeroDivisionError, TypeError):
|
||||
return 0
|
||||
rate = cache.get('tr-{0}-suc-rate'.format(self.uuid))
|
||||
if rate is None:
|
||||
try:
|
||||
rate = int(100 * (float(self.good_count) / float(self.data_count)))
|
||||
cache.set('tr-{0}-suc-rate'.format(self.uuid), rate)
|
||||
return rate
|
||||
except (ZeroDivisionError, TypeError):
|
||||
cache.set('tr-{0}-suc-rate'.format(self.uuid), 0)
|
||||
return 0
|
||||
return rate
|
||||
|
||||
@property
|
||||
def bad_rate(self):
|
||||
try:
|
||||
return int(100 * (float(self.bad_count) / float(self.data_count)))
|
||||
except (ZeroDivisionError, TypeError):
|
||||
return 0
|
||||
rate = cache.get('tr-{0}-bad-rate'.format(self.uuid))
|
||||
if rate is None:
|
||||
try:
|
||||
rate = int(100 * (float(self.bad_count) / float(self.data_count)))
|
||||
cache.set('tr-{0}-bad-rate'.format(self.uuid), rate)
|
||||
return rate
|
||||
except (ZeroDivisionError, TypeError):
|
||||
cache.set('tr-{0}-bad-rate'.format(self.uuid), 0)
|
||||
return 0
|
||||
return rate
|
||||
|
||||
@property
|
||||
def unknown_rate(self):
|
||||
try:
|
||||
return int(100 * (float(self.unknown_count) / float(self.data_count)))
|
||||
except (ZeroDivisionError, TypeError):
|
||||
return 0
|
||||
rate = cache.get('tr-{0}-unk-rate'.format(self.uuid))
|
||||
if rate is None:
|
||||
try:
|
||||
rate = int(100 * (float(self.unknown_count) / float(self.data_count)))
|
||||
cache.set('tr-{0}-unk-rate'.format(self.uuid), rate)
|
||||
return rate
|
||||
except (ZeroDivisionError, TypeError):
|
||||
cache.set('tr-{0}-unk-rate'.format(self.uuid), 0)
|
||||
return 0
|
||||
return rate
|
||||
|
||||
def __unicode__(self):
|
||||
return self.description
|
||||
|
|
|
@ -67,9 +67,10 @@
|
|||
disabled data-hide-disabled="true" name="transmitter" autocomplete="off">
|
||||
<option id="no-transmitter" value="" disabled selected>No transmitter available</option>
|
||||
{% for transmitter in transmitters %}
|
||||
{% with success_rate=transmitter.success_rate bad_rate=transmitter.bad_rate unknown_rate=transmitter.unknown_rate %}
|
||||
<option data-satellite="{{ transmitter.satellite.norad_cat_id }}"
|
||||
value="{{ transmitter.uuid }}"
|
||||
data-success-rate="{{ transmitter.success_rate }}"
|
||||
data-success-rate="{{ success_rate }}"
|
||||
data-content='<div class="transmitter-option">
|
||||
<div class="transmitter-description">
|
||||
{{ transmitter.description }} - {{ transmitter.downlink_low|frq }} - {{ transmitter.mode|default:"" }}
|
||||
|
@ -77,8 +78,8 @@
|
|||
<div class="progress">
|
||||
<div class="progress-bar progress-bar-success transmitter-good"
|
||||
data-toggle="tooltip" data-placement="bottom"
|
||||
title=" {{ transmitter.success_rate }}% ({{ transmitter.good_count }}) Good"
|
||||
style="width: {{ transmitter.success_rate }}%"></div>
|
||||
title=" {{ success_rate }}% ({{ transmitter.good_count }}) Good"
|
||||
style="width: {{ success_rate }}%"></div>
|
||||
<div class="progress-bar progress-bar-warning transmitter-unknown"
|
||||
data-toggle="tooltip" data-placement="bottom"
|
||||
title=" {{ transmitter.unknown_rate }}% ({{ transmitter.unknown_count }}) Unknown"
|
||||
|
@ -91,6 +92,7 @@
|
|||
</div>'>
|
||||
{{ transmitter.description }} - {{ transmitter.downlink_low|frq }} - {{ transmitter.mode|default:"" }}
|
||||
</option>
|
||||
{% endwith %}
|
||||
{% endfor %}
|
||||
</select>
|
||||
{% for satellite in satellites %}
|
||||
|
|
Loading…
Reference in New Issue