##// END OF EJS Templates
Task #95...
Fiorella Quino -
r35:a864f13c2539
parent child
Show More
@@ -1,172 +1,182
1 from django.shortcuts import redirect, render, get_object_or_404
1 from django.shortcuts import redirect, render, get_object_or_404
2 from django.contrib import messages
2 from django.contrib import messages
3
3
4 from apps.main.models import Experiment, Configuration
4 from apps.main.models import Experiment, Configuration
5 from .models import CGSConfiguration
5 from .models import CGSConfiguration
6
6
7 from .forms import CGSConfigurationForm
7 from .forms import CGSConfigurationForm
8 from apps.main.views import sidebar
8 from apps.main.views import sidebar
9
9
10 import requests
10 import requests
11 # Create your views here.
11 # Create your views here.
12
12
13 def cgs_conf(request, id_conf):
13 def cgs_conf(request, id_conf):
14
14
15 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
15 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
16
16
17 ip=conf.device.ip_address
17 ip=conf.device.ip_address
18 port=conf.device.port_address
18 port=conf.device.port_address
19
19
20 kwargs = {}
20 kwargs = {}
21 kwargs['dev_conf'] = conf
21 kwargs['dev_conf'] = conf
22 kwargs['dev_conf_keys'] = ['experiment', 'device',
22 kwargs['dev_conf_keys'] = ['experiment', 'device',
23 'freq0', 'freq1',
23 'freq0', 'freq1',
24 'freq2', 'freq3']
24 'freq2', 'freq3']
25
25
26 kwargs['title'] = 'CGS Configuration'
26 kwargs['title'] = 'CGS Configuration'
27 kwargs['suptitle'] = 'Details'
27 kwargs['suptitle'] = 'Details'
28
28
29 kwargs['button'] = 'Edit Configuration'
29 kwargs['button'] = 'Edit Configuration'
30
30
31 ###### SIDEBAR ######
31 ###### SIDEBAR ######
32 kwargs.update(sidebar(conf))
32 kwargs.update(sidebar(conf))
33
33
34 return render(request, 'cgs_conf.html', kwargs)
34 return render(request, 'cgs_conf.html', kwargs)
35
35
36 def cgs_conf_edit(request, id_conf):
36 def cgs_conf_edit(request, id_conf):
37
37
38 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
38 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
39
39
40 if request.method=='GET':
40 if request.method=='GET':
41 form = CGSConfigurationForm(instance=conf)
41 form = CGSConfigurationForm(instance=conf)
42
42
43 if request.method=='POST':
43 if request.method=='POST':
44 form = CGSConfigurationForm(request.POST, instance=conf)
44 form = CGSConfigurationForm(request.POST, instance=conf)
45
45
46 if form.is_valid():
46 if form.is_valid():
47 conf = form.save(commit=False)
47 conf = form.save(commit=False)
48
48
49 if conf.verify_frequencies():
49 if conf.verify_frequencies():
50
50
51 conf.save()
51 conf.save()
52 return redirect('url_cgs_conf', id_conf=conf.id)
52 return redirect('url_cgs_conf', id_conf=conf.id)
53
53
54 ##ERRORS
54 ##ERRORS
55
55
56 kwargs = {}
56 kwargs = {}
57 kwargs['id_dev'] = conf.id
57 kwargs['id_dev'] = conf.id
58 kwargs['form'] = form
58 kwargs['form'] = form
59 kwargs['title'] = 'Device Configuration'
59 kwargs['title'] = 'Device Configuration'
60 kwargs['suptitle'] = 'Edit'
60 kwargs['suptitle'] = 'Edit'
61 kwargs['button'] = 'Save'
61 kwargs['button'] = 'Save'
62
62
63 ###### SIDEBAR ######
63 ###### SIDEBAR ######
64 kwargs.update(sidebar(conf))
64 kwargs.update(sidebar(conf))
65
65
66 return render(request, 'cgs_conf_edit.html', kwargs)
66 return render(request, 'cgs_conf_edit.html', kwargs)
67
67
68 def cgs_conf_write(request, id_conf):
68 def cgs_conf_write(request, id_conf):
69
69
70 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
70 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
71 ip=conf.device.ip_address
71 ip=conf.device.ip_address
72 port=conf.device.port_address
72 port=conf.device.port_address
73
73
74 #Frequencies from form
74 #Frequencies from form
75 f0 = conf.freq0
75 f0 = int(conf.freq0)
76 f1 = conf.freq1
76 f1 = int(conf.freq1)
77 f2 = conf.freq2
77 f2 = int(conf.freq2)
78 f3 = conf.freq3
78 f3 = int(conf.freq3)
79 headers = {'User-Agent': 'Mozilla/5.0'}
80 post_data = {"f0":f0, "f1":f1, "f2":f2, "f3":f3}
79 post_data = {"f0":f0, "f1":f1, "f2":f2, "f3":f3}
81 route = "http://" + str(ip) + ":" + str(port) + "/frequencies/"
80 route = "http://" + str(ip) + ":" + str(port) + "/frequencies/"
82 session = requests.session()
81 r = requests.post(route, post_data)
83
82 text = r.text
84 r = session.post(route, data= post_data,headers= headers)
83 text = text.split(',')
85 print r.url
84
86 print r.text
85 try:
86 title = text[0]
87 status = text[1]
88 status_ok = r.status_code
89 if status_ok == 200 or title == "okay":
90 messages.success(request, status)
91 else:
92 messages.error(request, status)
93 except:
94 messages.error(request, "An hardware error was found")
87
95
88
96
89
97
90
98
91 return redirect('url_cgs_conf', id_conf=conf.id)
99 return redirect('url_cgs_conf', id_conf=conf.id)
92
100
93 def cgs_conf_read(request, id_conf):
101 def cgs_conf_read(request, id_conf):
94
102
95 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
103 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
96 ip=conf.device.ip_address
104 ip=conf.device.ip_address
97 port=conf.device.port_address
105 port=conf.device.port_address
98
106
99 if request.method=='POST':
107 if request.method=='POST':
100 form = CGSConfigurationForm(request.POST, instance=conf)
108 form = CGSConfigurationForm(request.POST, instance=conf)
101
109
102 if form.is_valid():
110 if form.is_valid():
103 cgs_model = form.save(commit=False)
111 cgs_model = form.save(commit=False)
104
112
105 if cgs_model.verify_frequencies():
113 if cgs_model.verify_frequencies():
106
114
107 cgs_model.save()
115 cgs_model.save()
108 return redirect('url_cgs_conf', id_conf=conf.id)
116 return redirect('url_cgs_conf', id_conf=conf.id)
109
117
110 messages.error(request, "Parameters could not be saved. Invalid parameters")
118 messages.error(request, "Parameters could not be saved. Invalid parameters")
111
119
112 data = {}
120 data = {}
113
121
114
122
115 if request.method=='GET':
123 if request.method=='GET':
116 #r: response = icon, status
124 #r: response = icon, status
117 route = "http://" + str(ip) + ":" + str(port) + "/status/ad9548"
125 route = "http://" + str(ip) + ":" + str(port) + "/status/ad9548"
118 r = requests.get(route)
126 r = requests.get(route)
119 response = str(r.text)
127 response = str(r.text)
120 response = response.split(";")
128 response = response.split(";")
121 icon = response[0]
129 icon = response[0]
122 status = response[-1]
130 status = response[-1]
131 print r.text
123 #"icon" could be: "alert" or "okay"
132 #"icon" could be: "alert" or "okay"
124 if "okay" in icon:
133 if "okay" in icon:
125 messages.success(request, status)
134 messages.success(request, status)
126 else:
135 else:
127 messages.error(request, status)
136 messages.error(request, status)
128 #Get Frequencies
137 #Get Frequencies
129 route = "http://" + str(ip) + ":" + str(port) + "/frequencies/"
138 route = "http://" + str(ip) + ":" + str(port) + "/frequencies/"
130 #frequencies = requests.get('http://10.10.10.175:8080/frequencies/')
139 #frequencies = requests.get('http://10.10.10.175:8080/frequencies/')
131 frequencies = requests.get(route)
140 frequencies = requests.get(route)
132 frequencies = frequencies.json()
141 frequencies = frequencies.json()
133 frequencies = frequencies.get("Frecuencias")
142 frequencies = frequencies.get("Frecuencias")
134 f0 = frequencies.get("f0")
143 f0 = frequencies.get("f0")
135 f1 = frequencies.get("f1")
144 f1 = frequencies.get("f1")
136 f2 = frequencies.get("f2")
145 f2 = frequencies.get("f2")
137 f3 = frequencies.get("f3")
146 f3 = frequencies.get("f3")
138 print f0,f1,f2,f3
147 print f0,f1,f2,f3
148
139
149
140 if not response:
150 if not response:
141 messages.error(request, "Could not read parameters from Device")
151 messages.error(request, "Could not read parameters from Device")
142 return redirect('url_cgs_conf', id_conf=conf.id)
152 return redirect('url_cgs_conf', id_conf=conf.id)
143
153
144 data = {'experiment' : conf.experiment.id,
154 data = {'experiment' : conf.experiment.id,
145 'device' : conf.device.id,
155 'device' : conf.device.id,
146 'freq0' : f0,
156 'freq0' : f0,
147 'freq1' : f1,
157 'freq1' : f1,
148 'freq2' : f2,
158 'freq2' : f2,
149 'freq3' : f3,
159 'freq3' : f3,
150 }
160 }
151
161
152 form = CGSConfigurationForm(initial = data)
162 form = CGSConfigurationForm(initial = data)
153
163
154 kwargs = {}
164 kwargs = {}
155 kwargs['id_dev'] = conf.id
165 kwargs['id_dev'] = conf.id
156 kwargs['form'] = form
166 kwargs['form'] = form
157 kwargs['title'] = 'Device Configuration'
167 kwargs['title'] = 'Device Configuration'
158 kwargs['suptitle'] = 'Parameters read from device'
168 kwargs['suptitle'] = 'Parameters read from device'
159 kwargs['button'] = 'Save'
169 kwargs['button'] = 'Save'
160
170
161 ###### SIDEBAR ######
171 ###### SIDEBAR ######
162 kwargs.update(sidebar(conf))
172 kwargs.update(sidebar(conf))
163
173
164 return render(request, 'cgs_conf_edit.html', kwargs)
174 return render(request, 'cgs_conf_edit.html', kwargs)
165
175
166 #def cgs_conf_export(request, id_conf):
176 #def cgs_conf_export(request, id_conf):
167
177
168 # conf = get_object_or_404(CGSConfiguration, pk=id_conf)
178 # conf = get_object_or_404(CGSConfiguration, pk=id_conf)
169 # ip=conf.device.ip_address
179 # ip=conf.device.ip_address
170 # port=conf.device.port_address
180 # port=conf.device.port_address
171
181
172 # return render(request, 'cgs_conf_export.html', kwargs) No newline at end of file
182 # return render(request, 'cgs_conf_export.html', kwargs)
General Comments 0
You need to be logged in to leave comments. Login now