##// END OF EJS Templates
Task #716: ABS View...
Fiorella Quino -
r168:023aec519db8
parent child
Show More
@@ -1,327 +1,327
1 1 from django.shortcuts import render_to_response
2 2 from django.template import RequestContext
3 3 from django.shortcuts import redirect, render, get_object_or_404
4 4 from django.contrib import messages
5 5
6 6 from apps.main.models import Device, Configuration
7 7 from apps.main.views import sidebar
8 8
9 9 from .models import ABSConfiguration, ABSBeam
10 10 from .forms import ABSConfigurationForm, ABSBeamEditForm, ABSBeamAddForm
11 11 # Create your views here.
12 12 import json, ast
13 13
14 14
15 15 def get_values_from_form(form_data):
16 16
17 17 sublistup = []
18 18 sublistdown = []
19 19 subtxlistup = []
20 20 subtxlistdown = []
21 21 subrxlistup = []
22 22 subrxlistdown = []
23 23
24 24 up_values_list = []
25 25 down_values_list = []
26 26 up_txvalues_list = []
27 27 down_txvalues_list = []
28 28 up_rxvalues_list = []
29 29 down_rxvalues_list = []
30 30
31 31 values_list = {}
32 32 cont = 1
33 33
34 34 for i in range(1,65):
35 35 x = float(form_data['abs_up'+str(i)])
36 36 y = float(form_data['abs_down'+str(i)])
37 37 sublistup.append(x)
38 38 sublistdown.append(y)
39 39
40 40 if str(i) in form_data.getlist('uptx_checks'):
41 41 subtxlistup.append(1)
42 42 else:
43 43 subtxlistup.append(0)
44 44 if str(i) in form_data.getlist('downtx_checks'):
45 45 subtxlistdown.append(1)
46 46 else:
47 47 subtxlistdown.append(0)
48 48
49 49 if str(i) in form_data.getlist('uprx_checks'):
50 50 subrxlistup.append(1)
51 51 else:
52 52 subrxlistup.append(0)
53 53 if str(i) in form_data.getlist('downrx_checks'):
54 54 subrxlistdown.append(1)
55 55 else:
56 56 subrxlistdown.append(0)
57 57
58 58 cont = cont+1
59 59
60 60 if cont == 9:
61 61 up_values_list.append(sublistup)
62 62 down_values_list.append(sublistdown)
63 63 sublistup = []
64 64 sublistdown = []
65 65
66 66 up_txvalues_list.append(subtxlistup)
67 67 down_txvalues_list.append(subtxlistdown)
68 68 subtxlistup = []
69 69 subtxlistdown = []
70 70 up_rxvalues_list.append(subrxlistup)
71 71 down_rxvalues_list.append(subrxlistdown)
72 72 subrxlistup = []
73 73 subrxlistdown = []
74 74 cont = 1
75 75
76 76
77 77 list_uesup = []
78 78 list_uesdown = []
79 79 for i in range(1,5):
80 80 if form_data['ues_up'+str(i)] == '':
81 81 list_uesup.append(0.0)
82 82 else:
83 83 list_uesup.append(float(form_data['ues_up'+str(i)]))
84 84
85 85 if form_data['ues_down'+str(i)] == '':
86 86 list_uesdown.append(0.0)
87 87 else:
88 88 list_uesdown.append(float(form_data['ues_down'+str(i)]))
89 89
90 90 onlyrx_list = form_data.getlist('onlyrx')
91 91 only_rx = {}
92 92 if '1' in onlyrx_list:
93 93 only_rx['up'] = True
94 94 else:
95 95 only_rx['up'] = False
96 96 if '2' in onlyrx_list:
97 97 only_rx['down'] = True
98 98 else:
99 99 only_rx['down'] = False
100 100
101 101 antenna = {'antenna_up': up_values_list, 'antenna_down': down_values_list}
102 102 tx = {'up': up_txvalues_list, 'down': down_txvalues_list}
103 103 rx = {'up': up_rxvalues_list, 'down': down_rxvalues_list}
104 104 ues = {'up': list_uesup, 'down': list_uesdown}
105 105 name = str(form_data['beam_name'])
106 106
107 107 beam_data = {'name': name, 'antenna': antenna, 'tx': tx, 'rx': rx, 'ues': ues, 'only_rx': only_rx}
108 108
109 109 return beam_data
110 110
111 111
112 112
113 113 def abs_conf(request, id_conf):
114 114
115 115 conf = get_object_or_404(ABSConfiguration, pk=id_conf)
116 116
117 117 beams_dict = ast.literal_eval(conf.beams)
118 118 beams = []
119 119 for beam_id in range(1,len(beams_dict)+1):
120 120 beam = ABSBeam.objects.get(pk=beams_dict['beam'+str(beam_id)])
121 121 beams.append(beam)
122 122
123 123 beams_id = ast.literal_eval(conf.beams)
124 124
125 125 ip=conf.device.ip_address
126 126 port=conf.device.port_address
127 127
128 128 kwargs = {}
129 129 kwargs['status'] = conf.device.get_status_display()
130 130
131 131
132 132 kwargs['dev_conf'] = conf
133 133 kwargs['dev_conf_keys'] = ['name',]
134 134
135 135 kwargs['title'] = 'ABS Configuration'
136 136 kwargs['suptitle'] = 'Details'
137 137 kwargs['no_play'] = True
138 138
139 139 kwargs['button'] = 'Edit Configuration'
140 140
141 141 #kwargs['no_play'] = True
142 142 kwargs['beams_id'] = beams_id
143 143 kwargs['beams'] = beams
144 144 kwargs['beam_selector'] = 0
145 145 #kwargs['my_data'] = simplejson.dumps(beams)
146 146
147 147 kwargs['only_stop'] = True
148 148
149 149 ###### SIDEBAR ######
150 150 kwargs.update(sidebar(conf=conf))
151 151
152 152 return render(request, 'abs_conf.html', kwargs)
153 153
154 154 def abs_conf_edit(request, id_conf):
155 155
156 156 conf = get_object_or_404(ABSConfiguration, pk=id_conf)
157 157 beams_list = ast.literal_eval(conf.beams)
158 158 i = 1
159 159 beams = []
160 160 for b in beams_list:
161 161 beam = ABSBeam.objects.get(pk=beams_list['beam'+str(i)])
162 162 beams.append(beam)
163 163 i=i+1
164 164
165 165 if request.method=='GET':
166 166 form = ABSConfigurationForm(instance=conf)
167 167
168 168 if request.method=='POST':
169 169 form = ABSConfigurationForm(request.POST, instance=conf)
170 170
171 171 if form.is_valid():
172 172 conf = form.save(commit=False)
173 173 conf.save()
174 174 return redirect('url_abs_conf', id_conf=conf.id)
175 175
176 176 ###### SIDEBAR ######
177 177 kwargs = {}
178 178
179 179 kwargs['dev_conf'] = conf
180 180 #kwargs['id_dev'] = conf.id
181 181 kwargs['id_conf'] = conf.id
182 182 kwargs['form'] = form
183 183 kwargs['abs_beams'] = beams
184 184 kwargs['title'] = 'Device Configuration'
185 185 kwargs['suptitle'] = 'Edit'
186 186 kwargs['button'] = 'Save'
187 187
188 188 kwargs['edit'] = True
189 189
190 190 return render(request, 'abs_conf_edit.html', kwargs)
191 191
192 192
193 193 def plot_patterns(request, id_conf):
194 194
195 195 conf = get_object_or_404(ABSConfiguration, pk=id_conf)
196 196 beams_list = ast.literal_eval(conf.beams)
197 197 i = 1
198 198 beams = []
199 199 for b in beams_list:
200 200 beam = ABSBeam.objects.get(pk=beams_list['beam'+str(i)])
201 201 beams.append(beam)
202 202 i=i+1
203 203
204 204 ###### SIDEBAR ######
205 205 kwargs = {}
206 206
207 207 kwargs['dev_conf'] = conf.device
208 208 kwargs['id_dev'] = conf.device
209 209 kwargs['id_conf'] = conf.id
210 210 kwargs['abs_beams'] = beams
211 211 kwargs['title'] = 'ABS Patterns'
212 212 kwargs['suptitle'] = conf.name
213 213 kwargs['no_sidebar'] = True
214 214
215 215 return render(request, 'abs_patterns.html', kwargs)
216 216
217 217 def add_beam(request, id_conf):
218 218
219 219 conf = get_object_or_404(ABSConfiguration, pk=id_conf)
220 220 confs = Configuration.objects.all()
221 221
222 222 if request.method=='GET':
223 223 #form = ABSBeamEditForm()
224 224 form = ABSBeamAddForm()
225 225
226 226 if request.method=='POST':
227 227 form = ABSBeamAddForm(request.POST)
228 228
229 229 beam_data = get_values_from_form(request.POST)
230 230
231 231 new_beam = ABSBeam(
232 232 name =beam_data['name'],
233 233 antenna =json.dumps(beam_data['antenna']),
234 234 abs_conf=conf,
235 235 tx =json.dumps(beam_data['tx']),
236 236 rx =json.dumps(beam_data['rx']),
237 237 ues =json.dumps(beam_data['ues']),
238 238 only_rx =json.dumps(beam_data['only_rx'])
239 239 )
240 240 new_beam.save()
241 241 #---Update 6bits configuration and add beam to abs configuration beams list.
242 242 new_beam.modules_6bits()
243 243 new_beam.add_beam2list()
244 244 messages.success(request, 'Beam: "%s" has been added.' % new_beam.name)
245 245
246 246 return redirect('url_edit_abs_conf', conf.id)
247 247
248 248 ###### SIDEBAR ######
249 249 kwargs = {}
250 250
251 251 #kwargs['dev_conf'] = conf.device
252 252 #kwargs['id_dev'] = conf.device
253 253 kwargs['id_conf'] = conf.id
254 254 kwargs['form'] = form
255 255 kwargs['title'] = 'ABS Beams'
256 256 kwargs['suptitle'] = 'Add Beam'
257 257 kwargs['button'] = 'Add'
258 258 kwargs['no_sidebar'] = True
259 259
260 260 #kwargs['previous'] = conf.get_absolute_url_edit()
261 261 kwargs['edit'] = True
262 262
263 263 return render(request, 'abs_add_beam.html', kwargs)
264 264
265 265
266 266 def edit_beam(request, id_conf, id_beam):
267 267
268 268 conf = get_object_or_404(ABSConfiguration, pk=id_conf)
269 269 beam = get_object_or_404(ABSBeam, pk=id_beam)
270 270
271 271 if request.method=='GET':
272 272 form = ABSBeamEditForm(initial={'beam': beam})
273 273
274 274 if request.method=='POST':
275 275 form = ABSBeamEditForm(request.POST)
276 276
277 277 beam_data = get_values_from_form(request.POST)
278 278
279 279 beam.dict_to_parms(beam_data)
280 280 beam.save()
281 281
282 282 messages.success(request, 'Beam: "%s" has been updated.' % beam.name)
283 283
284 284 return redirect('url_edit_abs_conf', conf.id)
285 285
286 286 ###### SIDEBAR ######
287 287 kwargs = {}
288 288
289 289 kwargs['id_conf'] = conf.id
290 290 kwargs['form'] = form
291 291 kwargs['title'] = 'ABS Beams'
292 292 kwargs['suptitle'] = 'Edit Beam'
293 293 kwargs['button'] = 'Save'
294 294 kwargs['no_sidebar'] = True
295 295
296 296 #kwargs['previous'] = conf.get_absolute_url_edit()
297 297 kwargs['edit'] = True
298 298
299 return render(request, 'abs_add_beam.html', kwargs)
299 return render(request, 'abs_edit_beam.html', kwargs)
300 300
301 301
302 302
303 303 def remove_beam(request, id_conf, id_beam):
304 304
305 305 conf = get_object_or_404(ABSConfiguration, pk=id_conf)
306 306 beam = get_object_or_404(ABSBeam, pk=id_beam)
307 307
308 308 if request.method=='POST':
309 309 if beam:
310 310 try:
311 311 beam.remove_beamfromlist()
312 312 beam.delete()
313 313 messages.success(request, 'Beam: "%s" has been deleted.' % beam)
314 314 except:
315 315 messages.error(request, 'Unable to delete beam: "%s".' % beam)
316 316
317 317 return redirect('url_edit_abs_conf', conf.id)
318 318
319 319 ###### SIDEBAR ######
320 320 kwargs = {}
321 321
322 322 kwargs['object'] = beam
323 323 kwargs['delete'] = True
324 324 kwargs['title'] = 'Delete'
325 325 kwargs['suptitle'] = 'Beam'
326 326 kwargs['previous'] = conf.get_absolute_url_edit()
327 327 return render(request, 'confirm.html', kwargs)
General Comments 0
You need to be logged in to leave comments. Login now