1
0
Fork 0

Add observer field on DemodData

merge-requests/142/head
Nikos Roussos 2017-03-14 21:21:17 +02:00
parent 4608c000f6
commit 577013d262
No known key found for this signature in database
GPG Key ID: BADFF1767BA7C8E1
3 changed files with 37 additions and 9 deletions

View File

@ -104,7 +104,7 @@ class TelemetryAdmin(admin.ModelAdmin):
@admin.register(DemodData)
class DemodDataAdmin(admin.ModelAdmin):
list_display = ('id', 'satellite', 'source', 'station')
list_display = ('id', 'satellite', 'source', 'observer')
search_fields = ('transmitter__uuid', 'satellite__norad_cat_id', 'observer')
def satellite(self, obj):

View File

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.10.6 on 2017-03-14 18:38
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('base', '0004_auto_20170302_1641'),
]
operations = [
migrations.AddField(
model_name='demoddata',
name='observer',
field=models.CharField(blank=True, max_length=60),
),
]

View File

@ -4,6 +4,7 @@ from uuid import uuid4
from django.core.validators import MaxValueValidator, MinValueValidator
from django.db import models
from django.db.models.signals import post_save
from django.contrib.auth.models import User
from django.conf import settings
@ -19,6 +20,18 @@ def _name_payload_frame(instance, filename):
return path.join(folder, filename)
def _gen_observer(sender, instance, created, **kwargs):
post_save.disconnect(_gen_observer, sender=DemodData)
try:
qth = gridsquare(instance.lat, instance.lng)
except:
instance.observer = 'Unknown'
else:
instance.observer = '{0}-{1}'.format(instance.station, qth)
instance.save()
post_save.connect(_gen_observer, sender=DemodData)
class TransmitterApprovedManager(models.Manager):
def get_queryset(self):
return super(TransmitterApprovedManager, self).get_queryset().filter(approved=True)
@ -148,6 +161,7 @@ class DemodData(models.Model):
payload_decoded = models.TextField(blank=True)
payload_telemetry = models.ForeignKey(Telemetry, null=True, blank=True)
station = models.CharField(max_length=45, default='Unknown')
observer = models.CharField(max_length=60, blank=True)
lat = models.FloatField(validators=[MaxValueValidator(90), MinValueValidator(-90)],
default=0)
lng = models.FloatField(validators=[MaxValueValidator(180), MinValueValidator(-180)],
@ -157,13 +171,7 @@ class DemodData(models.Model):
class Meta:
ordering = ['-timestamp']
@property
def qthlocation(self):
try:
qth = gridsquare(self.lat, self.lng)
except:
qth = 'Unknown'
return qth
def __unicode__(self):
return 'data-for-{0}'.format(self.satellite.norad_cat_id)
post_save.connect(_gen_observer, sender=DemodData)