views.py
322 lines
| 9.9 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 | |||
|
r172 | from apps.main.models import Experiment | ||
|
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): | ||
|
r172 | |||
|
r27 | conf = get_object_or_404(CGSConfiguration, pk=id_conf) | ||
|
r172 | |||
|
r31 | ip=conf.device.ip_address | ||
port=conf.device.port_address | ||||
|
r172 | |||
|
r27 | kwargs = {} | ||
|
r172 | |||
|
r59 | kwargs['status'] = conf.device.get_status_display() | ||
|
r172 | |||
|
r59 | #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] | ||||
|
r172 | # 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 | ||||
|
r172 | |||
# except: | ||||
|
r59 | # kwargs['connected'] = False | ||
# status = "The Device is not connected." | ||||
|
r172 | |||
|
r59 | #if not kwargs['connected']: | ||
# messages.error(request, message=status) | ||||
|
r172 | |||
|
r27 | kwargs['dev_conf'] = conf | ||
|
r138 | kwargs['dev_conf_keys'] = ['name', | ||
|
r27 | 'freq0', 'freq1', | ||
'freq2', 'freq3'] | ||||
|
r172 | |||
|
r27 | kwargs['title'] = 'CGS Configuration' | ||
kwargs['suptitle'] = 'Details' | ||||
|
r172 | |||
|
r27 | kwargs['button'] = 'Edit Configuration' | ||
|
r172 | |||
|
r59 | kwargs['no_play'] = True | ||
|
r172 | |||
|
r27 | ###### SIDEBAR ###### | ||
|
r85 | kwargs.update(sidebar(conf=conf)) | ||
|
r172 | |||
|
r27 | return render(request, 'cgs_conf.html', kwargs) | ||
|
r4 | |||
|
r27 | def cgs_conf_edit(request, id_conf): | ||
|
r172 | |||
|
r27 | conf = get_object_or_404(CGSConfiguration, pk=id_conf) | ||
|
r172 | |||
|
r27 | if request.method=='GET': | ||
form = CGSConfigurationForm(instance=conf) | ||||
|
r172 | |||
|
r27 | if request.method=='POST': | ||
form = CGSConfigurationForm(request.POST, instance=conf) | ||||
|
r172 | |||
|
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 | ||||
|
r172 | |||
|
r31 | conf = form.save(commit=False) | ||
|
r172 | |||
|
r31 | if conf.verify_frequencies(): | ||
conf.save() | ||||
return redirect('url_cgs_conf', id_conf=conf.id) | ||||
|
r172 | |||
|
r31 | ##ERRORS | ||
|
r172 | |||
|
r27 | kwargs = {} | ||
|
r31 | kwargs['id_dev'] = conf.id | ||
|
r27 | kwargs['form'] = form | ||
kwargs['title'] = 'Device Configuration' | ||||
kwargs['suptitle'] = 'Edit' | ||||
|
r31 | kwargs['button'] = 'Save' | ||
|
r172 | |||
|
r31 | return render(request, 'cgs_conf_edit.html', kwargs) | ||
|
r172 | # | ||
|
r59 | # def cgs_conf_write(request, id_conf): | ||
|
r172 | # | ||
|
r59 | # conf = get_object_or_404(CGSConfiguration, pk=id_conf) | ||
# ip=conf.device.ip_address | ||||
# port=conf.device.port_address | ||||
|
r172 | # | ||
|
r59 | # #Frequencies from form | ||
# f0 = conf.freq0 | ||||
# f1 = conf.freq1 | ||||
# f2 = conf.freq2 | ||||
# f3 = conf.freq3 | ||||
|
r172 | # | ||
# try: | ||||
|
r59 | # 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(',') | ||||
|
r172 | # | ||
# try: | ||||
|
r59 | # if len(text)>1: | ||
# title = text[0] | ||||
# status = text[1] | ||||
|
r172 | # status_ok = r.status_code | ||
|
r59 | # if title == "okay": | ||
# messages.success(request, status) | ||||
# else: | ||||
# messages.error(request, status) | ||||
|
r172 | # | ||
|
r59 | # else: | ||
# title = text[0] | ||||
# messages.error(request, title) | ||||
|
r172 | # | ||
|
r59 | # except: | ||
# messages.error(request, "An hardware error was found.") | ||||
|
r172 | # | ||
|
r59 | # except: | ||
# messages.error(request, "Could not write parameters.") | ||||
|
r172 | # | ||
# | ||||
# | ||||
# | ||||
|
r59 | # return redirect('url_cgs_conf', id_conf=conf.id) | ||
|
r172 | # | ||
|
r59 | # def cgs_conf_read(request, id_conf): | ||
|
r172 | # | ||
|
r59 | # conf = get_object_or_404(CGSConfiguration, pk=id_conf) | ||
|
r172 | # | ||
|
r59 | # ip=conf.device.ip_address | ||
# port=conf.device.port_address | ||||
|
r172 | # | ||
|
r59 | # if request.method=='POST': | ||
# form = CGSConfigurationForm(request.POST, instance=conf) | ||||
|
r172 | # | ||
|
r59 | # if form.is_valid(): | ||
# cgs_model = form.save(commit=False) | ||||
|
r172 | # | ||
|
r59 | # if cgs_model.verify_frequencies(): | ||
|
r172 | # | ||
|
r59 | # cgs_model.save() | ||
# return redirect('url_cgs_conf', id_conf=conf.id) | ||||
|
r172 | # | ||
|
r59 | # messages.error(request, "Parameters could not be saved. Invalid parameters") | ||
|
r172 | # | ||
|
r59 | # data = {} | ||
|
r172 | # | ||
# | ||||
|
r59 | # 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] | ||||
|
r172 | # status = response[-1] | ||
|
r59 | # 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 | ||||
|
r172 | # | ||
# | ||||
|
r59 | # if not response: | ||
# messages.error(request, "Could not read parameters from Device") | ||||
# return redirect('url_cgs_conf', id_conf=conf.id) | ||||
|
r172 | # | ||
|
r59 | # data = {'experiment' : conf.experiment.id, | ||
# 'device' : conf.device.id, | ||||
# 'freq0' : f0, | ||||
# 'freq1' : f1, | ||||
# 'freq2' : f2, | ||||
# 'freq3' : f3, | ||||
# } | ||||
# except: | ||||
|
r172 | # messages.error(request, "Could not read parameters from Device") | ||
|
r59 | # 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) | ||||
|
r172 | # | ||
|
r59 | # form = CGSConfigurationForm(initial = data) | ||
|
r172 | # | ||
|
r59 | # kwargs = {} | ||
# kwargs['id_dev'] = conf.id | ||||
# kwargs['form'] = form | ||||
# kwargs['title'] = 'Device Configuration' | ||||
# kwargs['suptitle'] = 'Parameters read from device' | ||||
# kwargs['button'] = 'Save' | ||||
|
r172 | # | ||
|
r59 | # ###### SIDEBAR ###### | ||
# kwargs.update(sidebar(conf)) | ||||
|
r172 | # | ||
|
r59 | # return render(request, 'cgs_conf_edit.html', kwargs) | ||
|
r172 | # | ||
|
r59 | # def cgs_conf_import(request, id_conf): | ||
|
r172 | # | ||
|
r59 | # conf = get_object_or_404(CGSConfiguration, pk=id_conf) | ||
|
r172 | # | ||
|
r59 | # if request.method == 'POST': | ||
# file_form = UploadFileForm(request.POST, request.FILES) | ||||
|
r172 | # | ||
|
r59 | # if file_form.is_valid(): | ||
|
r172 | # | ||
|
r59 | # try: | ||
# if conf.update_from_file(request.FILES['file']): | ||||
|
r172 | # | ||
|
r59 | # try: | ||
# conf.full_clean() | ||||
# except ValidationError as e: | ||||
# messages.error(request, e) | ||||
# else: | ||||
# conf.save() | ||||
|
r172 | # | ||
|
r59 | # 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.") | ||||
|
r172 | # | ||
|
r59 | # messages.error(request, "Could not import parameters from file") | ||
|
r172 | # | ||
|
r59 | # else: | ||
# file_form = UploadFileForm(initial={'title': '.json'}) | ||||
|
r172 | # | ||
# | ||||
|
r59 | # kwargs = {} | ||
# kwargs['id_dev'] = conf.id | ||||
# kwargs['title'] = 'Device Configuration' | ||||
# kwargs['form'] = file_form | ||||
# kwargs['suptitle'] = 'Importing file' | ||||
# kwargs['button'] = 'Import' | ||||
|
r172 | # | ||
|
r59 | # kwargs.update(sidebar(conf)) | ||
|
r172 | # | ||
|
r59 | # return render(request, 'cgs_conf_import.html', kwargs) | ||
|
r172 | # | ||
|
r59 | # def handle_uploaded_file(f): | ||
|
r172 | # | ||
|
r59 | # data = {'freq0' : 62500000, | ||
# 'freq1' : 62500000, | ||||
# 'freq2' : 62500000, | ||||
# 'freq3' : 62500000, | ||||
# } | ||||
|
r172 | # | ||
|
r59 | # return data | ||
|
r172 | # | ||
|
r59 | # def cgs_conf_export(request, id_conf): | ||
|
r172 | # | ||
|
r59 | # conf = get_object_or_404(CGSConfiguration, pk=id_conf) | ||
# ip=conf.device.ip_address | ||||
# port=conf.device.port_address | ||||
|
r172 | # | ||
|
r59 | # #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"' | ||||
|
r172 | # | ||
|
r59 | # # return response | ||
|
r172 | # | ||
|
r59 | # kwargs = {} | ||
# kwargs['dev_conf'] = conf | ||||
# kwargs['dev_conf_keys'] = ['experiment', 'device', | ||||
# 'freq0', 'freq1', | ||||
# 'freq2', 'freq3'] | ||||
|
r172 | # | ||
|
r59 | # kwargs['title'] = 'CGS Configuration' | ||
# kwargs['suptitle'] = 'Details' | ||||
|
r172 | # | ||
|
r59 | # kwargs['button'] = 'Edit Configuration' | ||
|
r172 | # | ||
|
r59 | # ###### SIDEBAR ###### | ||
# kwargs.update(sidebar(conf)) | ||||
|
r172 | # return render(request, 'cgs_conf.html', kwargs) | ||