From 7e99c5f033ee4c1dd7690967b890914b7da06512 2016-02-15 22:19:16 From: Fiorella Quino Date: 2016-02-15 22:19:16 Subject: [PATCH] Task #95: Se agrego funcion "export" archivo .json para cgs. Se modifico modelo de cgs, de float a integer git-svn-id: http://jro-dev.igp.gob.pe/svn/jro_hard/radarsys/trunk/webapp@64 aa17d016-51d5-4e8b-934c-7b2bbb1bbe71 --- diff --git a/apps/cgs/models.py b/apps/cgs/models.py index f112e02..7136279 100644 --- a/apps/cgs/models.py +++ b/apps/cgs/models.py @@ -7,14 +7,14 @@ from django.core.validators import MinValueValidator, MaxValueValidator from apps.main.models import Device, Experiment from files import read_json_file -# Create your models here. +# Create your models here. validators=[MinValueValidator(62.5e6), MaxValueValidator(450e6)] class CGSConfiguration(Configuration): - freq0 = models.FloatField(verbose_name='Frequency 0',validators=[MinValueValidator(62.5e6), MaxValueValidator(450e6)], blank=True, null=True) - freq1 = models.FloatField(verbose_name='Frequency 1',validators=[MinValueValidator(62.5e6), MaxValueValidator(450e6)], blank=True, null=True) - freq2 = models.FloatField(verbose_name='Frequency 2',validators=[MinValueValidator(62.5e6), MaxValueValidator(450e6)], blank=True, null=True) - freq3 = models.FloatField(verbose_name='Frequency 3',validators=[MinValueValidator(62.5e6), MaxValueValidator(450e6)], blank=True, null=True) + freq0 = models.IntegerField(verbose_name='Frequency 0',validators=[MinValueValidator(0), MaxValueValidator(450e6)], blank=True, null=True) + freq1 = models.IntegerField(verbose_name='Frequency 1',validators=[MinValueValidator(0), MaxValueValidator(450e6)], blank=True, null=True) + freq2 = models.IntegerField(verbose_name='Frequency 2',validators=[MinValueValidator(0), MaxValueValidator(450e6)], blank=True, null=True) + freq3 = models.IntegerField(verbose_name='Frequency 3',validators=[MinValueValidator(0), MaxValueValidator(450e6)], blank=True, null=True) #jfreqs = JSONField(default={"frequencies":[{"f0":freq0,"f1":freq1,"f2":freq2,"f3":freq3}]}, blank=True) diff --git a/apps/cgs/views.py b/apps/cgs/views.py index 33250a1..5c91369 100644 --- a/apps/cgs/views.py +++ b/apps/cgs/views.py @@ -1,5 +1,6 @@ from django.shortcuts import redirect, render, get_object_or_404 from django.contrib import messages +from django.http import HttpResponse from apps.main.models import Experiment, Configuration from .models import CGSConfiguration @@ -76,21 +77,14 @@ def cgs_conf_edit(request, id_conf): form = CGSConfigurationForm(request.POST, instance=conf) if form.is_valid(): + if conf.freq0 == None: conf.freq0 = 0 + if conf.freq1 == None: conf.freq1 = 0 + if conf.freq2 == None: conf.freq2 = 0 + if conf.freq3 == None: conf.freq3 = 0 + conf = form.save(commit=False) if conf.verify_frequencies(): - - if conf.freq0 == None: conf.freq0 = 0 - if conf.freq1 == None: conf.freq0 = 0 - if conf.freq2 == None: conf.freq0 = 0 - if conf.freq3 == None: conf.freq0 = 0 - - - data = {'f0': str(conf.freq0), 'f1': str(conf.freq1), - 'f2': str(conf.freq2), 'f3': str(conf.freq3)} - json_data = json.dumps(data) - conf.parameters = json_data - conf.save() return redirect('url_cgs_conf', id_conf=conf.id) @@ -116,14 +110,10 @@ def cgs_conf_write(request, id_conf): port=conf.device.port_address #Frequencies from form - if conf.freq0 == None: conf.freq0 = 0 - if conf.freq1 == None: conf.freq0 = 0 - if conf.freq2 == None: conf.freq0 = 0 - if conf.freq3 == None: conf.freq0 = 0 - f0 = int(conf.freq0) - f1 = int(conf.freq1) - f2 = int(conf.freq2) - f3 = int(conf.freq3) + f0 = conf.freq0 + f1 = conf.freq1 + f2 = conf.freq2 + f3 = conf.freq3 try: post_data = {"f0":f0, "f1":f1, "f2":f2, "f3":f3} @@ -302,9 +292,31 @@ def cgs_conf_export(request, id_conf): ip=conf.device.ip_address port=conf.device.port_address - if request.method=='POST': - return HttpResponse(conf.parameters, content_type="application/json") + if request.method=='GET': + data = {"Frequencies": [ + ["freq0", conf.freq0], + ["freq1", conf.freq1], + ["freq2", conf.freq2], + ["freq3", conf.freq3] + ]} + json_data = json.dumps(data) + conf.parameters = json_data + response = HttpResponse(conf.parameters, content_type="application/json") + response['Content-Disposition'] = 'attachment; filename="data.json"' + + return response - return render(request, 'cgs_conf.html') - #return redirect(conf.get_absolute_url()) - + kwargs = {} + kwargs['dev_conf'] = conf + kwargs['dev_conf_keys'] = ['experiment', 'device', + 'freq0', 'freq1', + 'freq2', 'freq3'] + + kwargs['title'] = 'CGS Configuration' + kwargs['suptitle'] = 'Details' + + kwargs['button'] = 'Edit Configuration' + + ###### SIDEBAR ###### + kwargs.update(sidebar(conf)) + return render(request, 'cgs_conf.html', kwargs) \ No newline at end of file