1
0
Fork 0

Add telemetry model and fields

merge-requests/91/head
Nikos Roussos 2016-05-06 20:20:09 +03:00
parent 800f00fc7f
commit 6a2e68bc33
4 changed files with 57 additions and 1 deletions

View File

@ -6,7 +6,7 @@ from django.template.loader import render_to_string
from django.conf import settings
from django.contrib.sites.shortcuts import get_current_site
from db.base.models import Mode, Satellite, Transmitter, Suggestion
from db.base.models import Mode, Satellite, Transmitter, Suggestion, DemodData
logger = logging.getLogger('db')
@ -95,3 +95,13 @@ class SuggestionAdmin(admin.ModelAdmin):
else:
return '-'
transmitter_data.allow_tags = True
@admin.register(DemodData)
class DemodDataAdmin(admin.ModelAdmin):
list_display = ('id', 'data_id', 'satellite')
search_fields = ('data_id', 'transmitter')
readonly_fields = ('data_id', 'transmitter', 'payload')
def satellite(self, obj):
return obj.transmitter.satellite

View File

@ -0,0 +1,36 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.6 on 2016-05-04 21:04
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
import jsonfield.fields
class Migration(migrations.Migration):
dependencies = [
('base', '0002_auto_20150908_2054'),
]
operations = [
migrations.CreateModel(
name='DemodData',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('data_id', models.PositiveIntegerField()),
('payload', jsonfield.fields.JSONField(default=dict)),
('transmitter', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='base.Transmitter')),
],
),
migrations.AddField(
model_name='satellite',
name='telemetry_decoder',
field=models.CharField(blank=True, max_length=20),
),
migrations.AddField(
model_name='satellite',
name='telemetry_schema',
field=jsonfield.fields.JSONField(blank=True, default=dict),
),
]

View File

@ -1,3 +1,4 @@
from jsonfield import JSONField
from shortuuidfield import ShortUUIDField
from django.core.validators import MinValueValidator
@ -30,6 +31,8 @@ class Satellite(models.Model):
names = models.TextField(blank=True)
image = models.ImageField(upload_to='satellites', blank=True,
help_text='Ideally: 250x250')
telemetry_schema = JSONField(blank=True)
telemetry_decoder = models.CharField(max_length=20, blank=True)
class Meta:
ordering = ["name"]
@ -95,3 +98,9 @@ class Suggestion(Transmitter):
def __unicode__(self):
return self.description
class DemodData(models.Model):
transmitter = models.ForeignKey(Transmitter)
data_id = models.PositiveIntegerField()
payload = JSONField()

View File

@ -2,6 +2,7 @@
django==1.9.5
django-shortuuidfield==0.1.3
django-compressor==2.0
django-jsonfield==0.9.19
# Configuration
django-dotenv==1.4.1