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