views.py
321 lines
| 10.4 KiB
| text/x-python
|
PythonLexer
|
r27 | from django.shortcuts import redirect, render, get_object_or_404 | |
|
r31 | from django.contrib import messages | |
|
r43 | from django.http import HttpResponse | |
|
r4 | ||
|
r27 | from apps.main.models import Experiment, Configuration | |
|
r6 | from .models import CGSConfiguration | |
|
r31 | ||
|
r42 | from .forms import CGSConfigurationForm, UploadFileForm | |
|
r31 | from apps.main.views import sidebar | |
import requests | |||
|
r38 | import json | |
|
r39 | #from __builtin__ import None | |
|
r0 | # Create your views here. | |
|
r4 | ||
|
r27 | def cgs_conf(request, id_conf): | |
conf = get_object_or_404(CGSConfiguration, pk=id_conf) | |||
|
r31 | ip=conf.device.ip_address | |
port=conf.device.port_address | |||
|
r27 | kwargs = {} | |
|
r36 | ||
|
r59 | kwargs['status'] = conf.device.get_status_display() | |
#if request.method=='GET': | |||
|
r36 | #r: response = icon, status | |
|
r59 | # 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] | |||
|
r38 | #print r.text | |
#"icon" could be: "alert" or "okay" | |||
# Si hay alerta pero esta conectado | |||
|
r59 | # if "alert" in icon: | |
# if "Starting Up" in status: #No Esta conectado | |||
# kwargs['connected'] = False | |||
# else: | |||
# kwargs['connected'] = True | |||
# elif "okay" in icon: | |||
# kwargs['connected'] = True | |||
# else: | |||
# kwargs['connected'] = False | |||
|
r38 | ||
|
r59 | # except: | |
# kwargs['connected'] = False | |||
# status = "The Device is not connected." | |||
|
r36 | ||
|
r59 | #if not kwargs['connected']: | |
# messages.error(request, message=status) | |||
|
r36 | ||
|
r27 | kwargs['dev_conf'] = conf | |
|
r138 | kwargs['dev_conf_keys'] = ['name', | |
|
r27 | 'freq0', 'freq1', | |
'freq2', 'freq3'] | |||
kwargs['title'] = 'CGS Configuration' | |||
kwargs['suptitle'] = 'Details' | |||
kwargs['button'] = 'Edit Configuration' | |||
|
r59 | kwargs['no_play'] = True | |
|
r27 | ###### SIDEBAR ###### | |
|
r85 | kwargs.update(sidebar(conf=conf)) | |
|
r27 | ||
return render(request, 'cgs_conf.html', kwargs) | |||
|
r4 | ||
|
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) | |||
|
r8 | if form.is_valid(): | |
|
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 | |||
|
r31 | conf = form.save(commit=False) | |
if conf.verify_frequencies(): | |||
conf.save() | |||
return redirect('url_cgs_conf', id_conf=conf.id) | |||
##ERRORS | |||
|
r27 | ||
kwargs = {} | |||
|
r31 | kwargs['id_dev'] = conf.id | |
|
r27 | kwargs['form'] = form | |
kwargs['title'] = 'Device Configuration' | |||
kwargs['suptitle'] = 'Edit' | |||
|
r31 | kwargs['button'] = 'Save' | |
return render(request, 'cgs_conf_edit.html', kwargs) | |||
|
r59 | # | |
# 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 | |||
# f0 = conf.freq0 | |||
# f1 = conf.freq1 | |||
# f2 = conf.freq2 | |||
# f3 = conf.freq3 | |||
# | |||
# 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) | |||
# | |||
# else: | |||
# title = text[0] | |||
# messages.error(request, title) | |||
# | |||
# except: | |||
# messages.error(request, "An hardware error was found.") | |||
# | |||
# except: | |||
# messages.error(request, "Could not write parameters.") | |||
# | |||
# | |||
# | |||
# | |||
# 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) | |||
# | |||
# 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" | |||
# 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 | |||
# | |||
# | |||
# 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, | |||
# } | |||
# return redirect('url_cgs_conf', id_conf=conf.id) | |||
# | |||
# form = CGSConfigurationForm(initial = data) | |||
# | |||
# 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)) | |||
# | |||
# return render(request, 'cgs_conf_edit.html', kwargs) | |||
# | |||
# 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 | |||
# | |||
# def cgs_conf_export(request, id_conf): | |||
# | |||
# conf = get_object_or_404(CGSConfiguration, pk=id_conf) | |||
# ip=conf.device.ip_address | |||
# port=conf.device.port_address | |||
# | |||
# #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 | |||
# | |||
# 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) |