1
0
Fork 0

Sumbit form for new observation.

merge-requests/64/head
Pierros Papadeas 2014-10-27 01:14:26 +00:00
parent a363d23d28
commit 1e9ad7d64c
7 changed files with 109 additions and 58 deletions

View File

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
class Migration(migrations.Migration):
dependencies = [
('base', '0007_auto_20141027_0000'),
]
operations = [
migrations.AlterField(
model_name='data',
name='payload',
field=models.FileField(null=True, upload_to=b'data_payloads', blank=True),
preserve_default=True,
),
]

View File

@ -110,4 +110,4 @@ class Data(models.Model):
end = models.DateTimeField()
observation = models.ForeignKey(Observation)
ground_station = models.ForeignKey(Station)
payload = models.FileField(upload_to='data_payloads', null=True)
payload = models.FileField(upload_to='data_payloads', blank=True, null=True)

View File

@ -36,24 +36,25 @@ def observation_new(request):
"""View for new observation"""
me = request.user
if request.method == 'POST':
sat_id = request.POST.get('sat_id')
trans_id = request.POST.get('trans_id')
start = request.POST.get('start')
end = request.POST.get('end')
sat = Satellite.objects.get(id=sat_id)
sat_id = request.POST.get('satellite')
trans_id = request.POST.get('transponder')
start = request.POST.get('start-time')
end = request.POST.get('end-time')
sat = Satellite.objects.get(norad_cat_id=sat_id)
trans = Transponder.objects.get(id=trans_id)
obs = Observation(satellite=sat, transponder=trans,
author=me, start=start, end=end)
obs.save()
total = int(request.POST.get('total'))
for item in total:
start = request.POST.get('d-start')
end = request.POST.get('d-end')
station_id = request.POST.get('d-station_id')
for item in range(total):
start = request.POST.get('{}-starting_time'.format(item))
end = request.POST.get('{}-ending_time'.format(item))
station_id = request.POST.get('{}-station'.format(item))
ground_station = Station.objects.get(id=station_id)
Data.objects.create(start=start, end=end, ground_station=ground_station,
observation=obs)
return redirect(reverse('observations_view_observation', kwargs={'id': obs.id}))
return redirect(reverse('observations_view_observation', kwargs={'id': obs.id}))
satellites = Satellite.objects.all()
transponders = Transponder.objects.filter(alive=True)

View File

@ -3,8 +3,9 @@ $(function () {
$('#datetimepicker-start').data("DateTimePicker").setMinDate(moment().add(1,'h'));
$('#datetimepicker-end').datetimepicker();
$("#datetimepicker-start").on("dp.change",function (e) {
$('#datetimepicker-end').data("DateTimePicker").setMinDate(e.date);
$('#datetimepicker-end').data("DateTimePicker").setMaxDate(moment(e.date).add(24, 'h'));
//Setting minimum and maximum for end
$('#datetimepicker-end').data("DateTimePicker").setMinDate(e.date);
$('#datetimepicker-end').data("DateTimePicker").setMaxDate(moment(e.date).add(24, 'h'));
});
$('#satellite-selection').change( function() {
@ -29,6 +30,7 @@ $( document ).ready( function(){
$.ajax({
url: '/prediction_windows/'+satellite+'/'+start_time+'/'+end_time
}).done(function(data) {
var dc = 0; //Data counter
var suggested_data = [];
$.each(data, function( i,k ){
label = k.id + " - " + k.name;
@ -37,13 +39,18 @@ $( document ).ready( function(){
$.each(k.window, function( m,n ){
var starting_time = moment(n.start).valueOf();
var ending_time = moment(n.end).valueOf();
$('#windows-data').append('<input type="hidden" name="'+dc+'-starting_time" value="'+n.start+'">');
$('#windows-data').append('<input type="hidden" name="'+dc+'-ending_time" value="'+n.end+'">');
$('#windows-data').append('<input type="hidden" name="'+dc+'-station" value="'+k.id+'">');
times.push({starting_time: starting_time, ending_time: ending_time})
dc = dc +1;
});
suggested_data.push({label : label, times : times});
//console.log(k);
//console.log(k.name);
});
$('#windows-data').append('<input type="hidden" name="total" value="'+dc+'">');
/*data.each(function( index ){
var data_groundstation = $(this).data('groundstation');
var data_time_start = 1000 * $(this).data('start');

View File

@ -39,7 +39,7 @@
<option id="no-transponder" value="" disabled selected>No transponder available</option>
{% for transponder in transponders %}
<option data-satellite="{{ transponder.satellite.norad_cat_id }}"
value="{{ transponder.satellite.norad_cat_id }}">
value="{{ transponder.id }}">
{{ transponder.description }} - {{ transponder.downlink_low }} - {{ transponder.mode }}
</option>
{% endfor %}
@ -94,6 +94,7 @@
<div id="name"></div>
<div id="scrolled_date"></div>
</div>
<div id="windows-data"></div>
</div>
</div>

View File

@ -38,53 +38,70 @@
</div>
</div>
<div class="row">
<div class="col-md-12">
<h3>Timeline</h3>
<div id="timeline"></div>
<div id="hoverRes">
<div class="coloredDiv"></div>
<div id="name"></div>
<div id="scrolled_date"></div>
{% if not observation.data_set.all %}
<div class="row">
<div class="col-md-12">
<p class="notice">
No data associated with this observation.
</p>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<h3>Data</h3>
{% for data in data %}
<div class="panel panel-default observation-data"
data-id="{{ data.id }}"
data-payload="{{ MEDIA_URL }}{{ data.payload }}"
data-start="{{ data.start|date:"U" }}"
data-end="{{ data.end|date:"U" }}"
data-groundstation="{{ data.ground_station }}">
<div class="panel-heading">
<h3 class="panel-title">
Data payload #{{ data.id }} from {{ data.ground_station }}
</h3>
</div>
<div class="panel-body">
<div class="wave" id="data-{{ data.id }}"></div>
</div>
<div class="panel-footer">
<span class="label label-default">Timeframe</span>
{{ data.start|date:"Y-m-d H:i:s" }} ~ {{ data.end|date:"Y-m-d H:i:s" }}
<a href="{{ MEDIA_URL }}{{ data.payload }}" target="_blank" class="pull-right">
<button type="button" class="btn btn-default btn-xs">
<span class="glyphicon glyphicon-download"></span> Data
</button>
</a>
<button type="button" class="btn btn-primary btn-xs pull-right playpause">
<span class="glyphicon glyphicon-play"></span>
<span class="glyphicon glyphicon-pause"></span>
</button>
</div>
{% else %}
<div class="row">
<div class="col-md-12">
<h3>Timeline</h3>
<div id="timeline"></div>
<div id="hoverRes">
<div class="coloredDiv"></div>
<div id="name"></div>
<div id="scrolled_date"></div>
</div>
{% endfor %}
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<h3>Data</h3>
{% for data in data %}
<div class="panel panel-default observation-data"
data-id="{{ data.id }}"
data-payload="{{ MEDIA_URL }}{{ data.payload }}"
data-start="{{ data.start|date:"U" }}"
data-end="{{ data.end|date:"U" }}"
data-groundstation="{{ data.ground_station }}">
<div class="panel-heading">
<h3 class="panel-title">
Data payload #{{ data.id }} from {{ data.ground_station }}
</h3>
</div>
<div class="panel-body">
{% if data.payload %}
<div class="wave" id="data-{{ data.id }}"></div>
{% else %}
<div class="notice">
Waiting for data
</div>
{% endif %}
</div>
<div class="panel-footer">
<span class="label label-default">Timeframe</span>
{{ data.start|date:"Y-m-d H:i:s" }} ~ {{ data.end|date:"Y-m-d H:i:s" }}
<a href="{{ MEDIA_URL }}{{ data.payload }}" target="_blank" class="pull-right">
<button type="button" class="btn btn-default btn-xs">
<span class="glyphicon glyphicon-download"></span> Data
</button>
</a>
<button type="button" class="btn btn-primary btn-xs pull-right playpause">
<span class="glyphicon glyphicon-play"></span>
<span class="glyphicon glyphicon-pause"></span>
</button>
</div>
</div>
{% endfor %}
</div>
</div>
{% endif %}
{% endblock content %}
{% block javascript %}

View File

@ -3,7 +3,12 @@
{% block title %}Observations{% endblock %}
{% block content %}
<h1>Observations</h1>
<h1>
Observations
{% if user.is_authenticated == 1 %}
<a class="btn btn-primary pull-right" href="{% url 'observation_new' %}">New Observation</a>
{% endif %}
</h1>
<div class="row">
<div class="col-md-12">