##// END OF EJS Templates
Task #95: Modulo CGS "parms_to_dict()"...
Task #95: Modulo CGS "parms_to_dict()" git-svn-id: http://jro-dev.igp.gob.pe/svn/jro_hard/radarsys/trunk/webapp@79 aa17d016-51d5-4e8b-934c-7b2bbb1bbe71

File last commit:

r43:7e99c5f033ee
r58:1f898d4e254e
Show More
views.py
321 lines | 10.0 KiB | text/x-python | PythonLexer
Fiorella Quino
Task #95: views...
r27 from django.shortcuts import redirect, render, get_object_or_404
Fiorella Quino
Task #94: edit, save, read function...
r31 from django.contrib import messages
Fiorella Quino
Task #95: Se agrego funcion "export" archivo .json para cgs. Se modifico modelo de cgs, de float a integer...
r43 from django.http import HttpResponse
Fiorella Quino
CGS model, form, view, url and html have been added....
r4
Fiorella Quino
Task #95: views...
r27 from apps.main.models import Experiment, Configuration
Juan C. Espinoza
Updating base models and views ...
r6 from .models import CGSConfiguration
Fiorella Quino
Task #94: edit, save, read function...
r31
Fiorella Quino
Task #95: se agrego la funcion "import" para archivos .json ...
r42 from .forms import CGSConfigurationForm, UploadFileForm
Fiorella Quino
Task #94: edit, save, read function...
r31 from apps.main.views import sidebar
import requests
Fiorella Quino
Task #95...
r38 import json
Fiorella Quino
Task #95: Se modifico funcion "read"...
r39 #from __builtin__ import None
Juan C. Espinoza
Proyecto base en Django (refs #259) ...
r0 # Create your views here.
Fiorella Quino
CGS model, form, view, url and html have been added....
r4
Fiorella Quino
Task #95: views...
r27 def cgs_conf(request, id_conf):
conf = get_object_or_404(CGSConfiguration, pk=id_conf)
Fiorella Quino
Task #94: edit, save, read function...
r31 ip=conf.device.ip_address
port=conf.device.port_address
Fiorella Quino
Task #95: views...
r27 kwargs = {}
Fiorella Quino
Task #95: connect icon...
r36
if request.method=='GET':
#r: response = icon, status
Fiorella Quino
Task #95...
r38 try:
route = "http://" + str(ip) + ":" + str(port) + "/status/ad9548"
r = requests.get(route)
response = str(r.text)
response = response.split(";")
icon = response[0]
status = response[-1]
#print r.text
#"icon" could be: "alert" or "okay"
# Si hay alerta pero esta conectado
if "alert" in icon:
if "Starting Up" in status: #No Esta conectado
kwargs['connected'] = False
else:
kwargs['connected'] = True
elif "okay" in icon:
Fiorella Quino
Taks #95: connected icon...
r37 kwargs['connected'] = True
Fiorella Quino
Task #95...
r38 else:
kwargs['connected'] = False
except:
Fiorella Quino
Taks #95: connected icon...
r37 kwargs['connected'] = False
Fiorella Quino
Task #95...
r38 status = "The Device is not connected."
Fiorella Quino
Task #95: connect icon...
r36
if not kwargs['connected']:
messages.error(request, message=status)
Fiorella Quino
Task #95: views...
r27 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 ######
Fiorella Quino
Task #94: edit, save, read function...
r31 kwargs.update(sidebar(conf))
Fiorella Quino
Task #95: views...
r27
return render(request, 'cgs_conf.html', kwargs)
Fiorella Quino
CGS model, form, view, url and html have been added....
r4
Fiorella Quino
Task #95: views...
r27 def cgs_conf_edit(request, id_conf):
conf = get_object_or_404(CGSConfiguration, pk=id_conf)
if request.method=='GET':
form = CGSConfigurationForm(instance=conf)
if request.method=='POST':
form = CGSConfigurationForm(request.POST, instance=conf)
Fiorella Quino
SIR Task #95 Modelo CGS: ...
r8 if form.is_valid():
Fiorella Quino
Task #95: Se agrego funcion "export" archivo .json para cgs. Se modifico modelo de cgs, de float a integer...
r43 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
Fiorella Quino
Task #94: edit, save, read function...
r31 conf = form.save(commit=False)
if conf.verify_frequencies():
conf.save()
return redirect('url_cgs_conf', id_conf=conf.id)
##ERRORS
Fiorella Quino
Task #95: views...
r27
kwargs = {}
Fiorella Quino
Task #94: edit, save, read function...
r31 kwargs['id_dev'] = conf.id
Fiorella Quino
Task #95: views...
r27 kwargs['form'] = form
kwargs['title'] = 'Device Configuration'
kwargs['suptitle'] = 'Edit'
Fiorella Quino
Task #94: edit, save, read function...
r31 kwargs['button'] = 'Save'
Fiorella Quino
Task #95...
r38
Fiorella Quino
Task #94: edit, save, read function...
r31 ###### SIDEBAR ######
kwargs.update(sidebar(conf))
return render(request, 'cgs_conf_edit.html', kwargs)
def cgs_conf_write(request, id_conf):
conf = get_object_or_404(CGSConfiguration, pk=id_conf)
ip=conf.device.ip_address
port=conf.device.port_address
#Frequencies from form
Fiorella Quino
Task #95: Se agrego funcion "export" archivo .json para cgs. Se modifico modelo de cgs, de float a integer...
r43 f0 = conf.freq0
f1 = conf.freq1
f2 = conf.freq2
f3 = conf.freq3
Fiorella Quino
Task #95...
r38
Fiorella Quino
Task #95: se modifico funcion "write" del cgs...
r40 try:
post_data = {"f0":f0, "f1":f1, "f2":f2, "f3":f3}
route = "http://" + str(ip) + ":" + str(port) + "/frequencies/"
r = requests.post(route, post_data)
text = r.text
text = text.split(',')
try:
if len(text)>1:
title = text[0]
status = text[1]
status_ok = r.status_code
if title == "okay":
messages.success(request, status)
else:
messages.error(request, status)
Fiorella Quino
Task #95...
r38 else:
Fiorella Quino
Task #95: se modifico funcion "write" del cgs...
r40 title = text[0]
messages.error(request, title)
except:
messages.error(request, "An hardware error was found.")
Fiorella Quino
Task #95...
r38
Fiorella Quino
Task #95...
r35 except:
Fiorella Quino
Task #95: se modifico funcion "write" del cgs...
r40 messages.error(request, "Could not write parameters.")
Fiorella Quino
Task #94: edit, save, read function...
r31
return redirect('url_cgs_conf', id_conf=conf.id)
def cgs_conf_read(request, id_conf):
conf = get_object_or_404(CGSConfiguration, pk=id_conf)
Fiorella Quino
Task #95...
r38
Fiorella Quino
Task #94: edit, save, read function...
r31 ip=conf.device.ip_address
port=conf.device.port_address
if request.method=='POST':
form = CGSConfigurationForm(request.POST, instance=conf)
if form.is_valid():
cgs_model = form.save(commit=False)
if cgs_model.verify_frequencies():
cgs_model.save()
return redirect('url_cgs_conf', id_conf=conf.id)
messages.error(request, "Parameters could not be saved. Invalid parameters")
data = {}
if request.method=='GET':
#r: response = icon, status
route = "http://" + str(ip) + ":" + str(port) + "/status/ad9548"
Fiorella Quino
Task #95...
r38 try:
r = requests.get(route)
response = str(r.text)
response = response.split(";")
icon = response[0]
status = response[-1]
print r.text
#"icon" could be: "alert" or "okay"
if "okay" in icon:
messages.success(request, status)
else:
messages.error(request, status)
#Get Frequencies
route = "http://" + str(ip) + ":" + str(port) + "/frequencies/"
#frequencies = requests.get('http://10.10.10.175:8080/frequencies/')
frequencies = requests.get(route)
frequencies = frequencies.json()
frequencies = frequencies.get("Frecuencias")
f0 = frequencies.get("f0")
f1 = frequencies.get("f1")
f2 = frequencies.get("f2")
f3 = frequencies.get("f3")
print f0,f1,f2,f3
Fiorella Quino
Task #94: edit, save, read function...
r31
Fiorella Quino
Task #95...
r38
if not response:
messages.error(request, "Could not read parameters from Device")
return redirect('url_cgs_conf', id_conf=conf.id)
data = {'experiment' : conf.experiment.id,
'device' : conf.device.id,
'freq0' : f0,
'freq1' : f1,
'freq2' : f2,
'freq3' : f3,
}
except:
messages.error(request, "Could not read parameters from Device")
data = {'experiment' : conf.experiment.id,
'device' : conf.device.id,
'freq0' : None,
'freq1' : None,
'freq2' : None,
'freq3' : None,
}
Fiorella Quino
Task #95: Se modifico funcion "read"...
r39 return redirect('url_cgs_conf', id_conf=conf.id)
Fiorella Quino
Task #94: edit, save, read function...
r31
Fiorella Quino
Task #95...
r33 form = CGSConfigurationForm(initial = data)
Fiorella Quino
Task #94: edit, save, read function...
r31
kwargs = {}
kwargs['id_dev'] = conf.id
kwargs['form'] = form
kwargs['title'] = 'Device Configuration'
kwargs['suptitle'] = 'Parameters read from device'
kwargs['button'] = 'Save'
###### SIDEBAR ######
kwargs.update(sidebar(conf))
Fiorella Quino
Task #95: views...
r27
Fiorella Quino
Task #95...
r34 return render(request, 'cgs_conf_edit.html', kwargs)
Fiorella Quino
Task #95: se agrego la funcion "import" para archivos .json ...
r42 def cgs_conf_import(request, id_conf):
conf = get_object_or_404(CGSConfiguration, pk=id_conf)
if request.method == 'POST':
file_form = UploadFileForm(request.POST, request.FILES)
if file_form.is_valid():
try:
if conf.update_from_file(request.FILES['file']):
try:
conf.full_clean()
except ValidationError as e:
messages.error(request, e)
else:
conf.save()
messages.success(request, "Parameters imported from file: '%s'." %request.FILES['file'].name)
#messages.warning(request,"")
return redirect('url_cgs_conf', id_conf=conf.id)
except:
messages.error(request, "No JSON object could be decoded.")
messages.error(request, "Could not import parameters from file")
else:
file_form = UploadFileForm(initial={'title': '.json'})
kwargs = {}
kwargs['id_dev'] = conf.id
kwargs['title'] = 'Device Configuration'
kwargs['form'] = file_form
kwargs['suptitle'] = 'Importing file'
kwargs['button'] = 'Import'
kwargs.update(sidebar(conf))
return render(request, 'cgs_conf_import.html', kwargs)
def handle_uploaded_file(f):
data = {'freq0' : 62500000,
'freq1' : 62500000,
'freq2' : 62500000,
'freq3' : 62500000,
}
return data
Fiorella Quino
Task #95...
r38 def cgs_conf_export(request, id_conf):
Fiorella Quino
Task #95...
r34
Fiorella Quino
Task #95...
r38 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
ip=conf.device.ip_address
port=conf.device.port_address
Fiorella Quino
Task #95...
r34
Fiorella Quino
Task #95: Se agrego funcion "export" archivo .json para cgs. Se modifico modelo de cgs, de float a integer...
r43 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
Fiorella Quino
Task #95...
r38
Fiorella Quino
Task #95: Se agrego funcion "export" archivo .json para cgs. Se modifico modelo de cgs, de float a integer...
r43 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)