##// END OF EJS Templates
Task #487: Si no hay Campañas...
Fiorella Quino -
r75:35b4a4a5ad61
parent child
Show More
@@ -1,888 +1,891
1 1 from django.shortcuts import render, redirect, get_object_or_404, HttpResponse
2 2 from django.contrib import messages
3 3
4 4 from .forms import CampaignForm, ExperimentForm, DeviceForm, ConfigurationForm, LocationForm, UploadFileForm, DownloadFileForm, OperationForm
5 5 from .forms import OperationSearchForm
6 6 from apps.cgs.forms import CGSConfigurationForm
7 7 from apps.jars.forms import JARSConfigurationForm
8 8 from apps.usrp.forms import USRPConfigurationForm
9 9 from apps.abs.forms import ABSConfigurationForm
10 10 from apps.rc.forms import RCConfigurationForm
11 11 from apps.dds.forms import DDSConfigurationForm
12 12
13 13 from .models import Campaign, Experiment, Device, Configuration, Location#, RunningExperiment
14 14 from apps.cgs.models import CGSConfiguration
15 15 from apps.jars.models import JARSConfiguration
16 16 from apps.usrp.models import USRPConfiguration
17 17 from apps.abs.models import ABSConfiguration
18 18 from apps.rc.models import RCConfiguration
19 19 from apps.dds.models import DDSConfiguration
20 20
21 21 # Create your views here.
22 22
23 23 CONF_FORMS = {
24 24 'rc': RCConfigurationForm,
25 25 'dds': DDSConfigurationForm,
26 26 'jars': JARSConfigurationForm,
27 27 'cgs': CGSConfigurationForm,
28 28 'abs': ABSConfigurationForm,
29 29 'usrp': USRPConfigurationForm,
30 30 }
31 31
32 32 CONF_MODELS = {
33 33 'rc': RCConfiguration,
34 34 'dds': DDSConfiguration,
35 35 'jars': JARSConfiguration,
36 36 'cgs': CGSConfiguration,
37 37 'abs': ABSConfiguration,
38 38 'usrp': USRPConfiguration,
39 39 }
40 40
41 41 def index(request):
42 42 kwargs = {}
43 43
44 44 return render(request, 'index.html', kwargs)
45 45
46 46 def locations(request):
47 47
48 48 locations = Location.objects.all().order_by('name')
49 49
50 50 keys = ['id', 'name', 'description']
51 51
52 52 kwargs = {}
53 53 kwargs['location_keys'] = keys[1:]
54 54 kwargs['locations'] = locations
55 55 kwargs['title'] = 'Location'
56 56 kwargs['suptitle'] = 'List'
57 57 kwargs['button'] = 'New Location'
58 58
59 59 return render(request, 'locations.html', kwargs)
60 60
61 61 def location(request, id_loc):
62 62
63 63 location = get_object_or_404(Location, pk=id_loc)
64 64
65 65 kwargs = {}
66 66 kwargs['location'] = location
67 67 kwargs['location_keys'] = ['name', 'description']
68 68
69 69 kwargs['title'] = 'Location'
70 70 kwargs['suptitle'] = 'Details'
71 71
72 72 return render(request, 'location.html', kwargs)
73 73
74 74 #def location_play(request, id_camp, id_loc):
75 75
76 76 # campaign = get_object_or_404(Campaign, pk=id_camp)
77 77 # print campaign
78 78 # location = get_object_or_404(Location, pk=id_loc)
79 79 # experiments = Experiment.objects.filter(location__pk=location.id).filter(campaign__pk=campaign.id)
80 80 # locations = Location.objects.filter(pk=id_loc)
81 81
82 82 # if request.method=='GET':
83 83 # form = OperationForm(initial={'campaign': campaign.id})
84 84
85 85 # kwargs = {}
86 86 #---Campaign
87 87 # kwargs['campaign'] = campaign
88 88 # kwargs['campaign_keys'] = ['name', 'start_date', 'end_date', 'tags', 'description']
89 89 #---Experiment
90 90 # keys = ['id', 'name', 'start_time', 'end_time']
91 91 # kwargs['experiment_keys'] = keys[1:]
92 92 # kwargs['experiments'] = experiments
93 93 #---Radar
94 94 # kwargs['location'] = location
95 95 #---Else
96 96 # kwargs['title'] = 'Campaign'
97 97 # kwargs['suptitle'] = campaign.name
98 98 # kwargs['form'] = form
99 99 # kwargs['button'] = 'Search'
100 100
101 101 # return render(request, 'operation_play.html', kwargs)
102 102
103 103 def location_new(request):
104 104
105 105 if request.method == 'GET':
106 106 form = LocationForm()
107 107
108 108 if request.method == 'POST':
109 109 form = LocationForm(request.POST)
110 110
111 111 if form.is_valid():
112 112 form.save()
113 113 return redirect('url_locations')
114 114
115 115 kwargs = {}
116 116 kwargs['form'] = form
117 117 kwargs['title'] = 'Location'
118 118 kwargs['suptitle'] = 'New'
119 119 kwargs['button'] = 'Create'
120 120
121 121 return render(request, 'location_edit.html', kwargs)
122 122
123 123 def location_edit(request, id_loc):
124 124
125 125 location = get_object_or_404(Location, pk=id_loc)
126 126
127 127 if request.method=='GET':
128 128 form = LocationForm(instance=location)
129 129
130 130 if request.method=='POST':
131 131 form = LocationForm(request.POST, instance=location)
132 132
133 133 if form.is_valid():
134 134 form.save()
135 135 return redirect('url_locations')
136 136
137 137 kwargs = {}
138 138 kwargs['form'] = form
139 139 kwargs['title'] = 'Location'
140 140 kwargs['suptitle'] = 'Edit'
141 141 kwargs['button'] = 'Update'
142 142
143 143 return render(request, 'location_edit.html', kwargs)
144 144
145 145 def location_delete(request, id_loc):
146 146
147 147 location = get_object_or_404(Location, pk=id_loc)
148 148
149 149 if request.method=='POST':
150 150
151 151 if request.user.is_staff:
152 152 location.delete()
153 153 return redirect('url_locations')
154 154
155 155 return HttpResponse("Not enough permission to delete this object")
156 156
157 157 kwargs = {'object':location, 'loc_active':'active',
158 158 'url_cancel':'url_location', 'id_item':id_loc}
159 159
160 160 return render(request, 'item_delete.html', kwargs)
161 161
162 162 def devices(request):
163 163
164 164 devices = Device.objects.all().order_by('device_type__name')
165 165
166 166 # keys = ['id', 'device_type__name', 'name', 'ip_address']
167 167 keys = ['id', 'name', 'ip_address', 'port_address', 'device_type']
168 168
169 169 kwargs = {}
170 170 kwargs['device_keys'] = keys[1:]
171 171 kwargs['devices'] = devices#.values(*keys)
172 172 kwargs['title'] = 'Device'
173 173 kwargs['suptitle'] = 'List'
174 174 kwargs['button'] = 'New Device'
175 175
176 176 return render(request, 'devices.html', kwargs)
177 177
178 178 def device(request, id_dev):
179 179
180 180 device = get_object_or_404(Device, pk=id_dev)
181 181
182 182 kwargs = {}
183 183 kwargs['device'] = device
184 184 kwargs['device_keys'] = ['device_type', 'name', 'ip_address', 'port_address', 'description']
185 185
186 186 kwargs['title'] = 'Device'
187 187 kwargs['suptitle'] = 'Details'
188 188
189 189 return render(request, 'device.html', kwargs)
190 190
191 191 def device_new(request):
192 192
193 193 if request.method == 'GET':
194 194 form = DeviceForm()
195 195
196 196 if request.method == 'POST':
197 197 form = DeviceForm(request.POST)
198 198
199 199 if form.is_valid():
200 200 form.save()
201 201 return redirect('url_devices')
202 202
203 203 kwargs = {}
204 204 kwargs['form'] = form
205 205 kwargs['title'] = 'Device'
206 206 kwargs['suptitle'] = 'New'
207 207 kwargs['button'] = 'Create'
208 208
209 209 return render(request, 'device_edit.html', kwargs)
210 210
211 211 def device_edit(request, id_dev):
212 212
213 213 device = get_object_or_404(Device, pk=id_dev)
214 214
215 215 if request.method=='GET':
216 216 form = DeviceForm(instance=device)
217 217
218 218 if request.method=='POST':
219 219 form = DeviceForm(request.POST, instance=device)
220 220
221 221 if form.is_valid():
222 222 form.save()
223 223 return redirect('url_devices')
224 224
225 225 kwargs = {}
226 226 kwargs['form'] = form
227 227 kwargs['title'] = 'Device'
228 228 kwargs['suptitle'] = 'Edit'
229 229 kwargs['button'] = 'Update'
230 230
231 231 return render(request, 'device_edit.html', kwargs)
232 232
233 233 def device_delete(request, id_dev):
234 234
235 235 device = get_object_or_404(Device, pk=id_dev)
236 236
237 237 if request.method=='POST':
238 238
239 239 if request.user.is_staff:
240 240 device.delete()
241 241 return redirect('url_devices')
242 242
243 243 return HttpResponse("Not enough permission to delete this object")
244 244
245 245 kwargs = {'object':device, 'dev_active':'active',
246 246 'url_cancel':'url_device', 'id_item':id_dev}
247 247
248 248 return render(request, 'item_delete.html', kwargs)
249 249
250 250 def campaigns(request):
251 251
252 252 campaigns = Campaign.objects.all().order_by('start_date')
253 253
254 254 keys = ['id', 'name', 'start_date', 'end_date']
255 255
256 256 kwargs = {}
257 257 kwargs['campaign_keys'] = keys[1:]
258 258 kwargs['campaigns'] = campaigns#.values(*keys)
259 259 kwargs['title'] = 'Campaign'
260 260 kwargs['suptitle'] = 'List'
261 261 kwargs['button'] = 'New Campaign'
262 262
263 263 return render(request, 'campaigns.html', kwargs)
264 264
265 265 def campaign(request, id_camp):
266 266
267 267 campaign = get_object_or_404(Campaign, pk=id_camp)
268 268 experiments = Experiment.objects.filter(campaign=campaign)
269 269
270 270 form = CampaignForm(instance=campaign)
271 271
272 272 kwargs = {}
273 273 kwargs['campaign'] = campaign
274 274 kwargs['campaign_keys'] = ['name', 'start_date', 'end_date', 'tags', 'description']
275 275
276 276 keys = ['id', 'name', 'start_time', 'end_time']
277 277
278 278 kwargs['experiment_keys'] = keys[1:]
279 279 kwargs['experiments'] = experiments.values(*keys)
280 280
281 281 kwargs['title'] = 'Campaign'
282 282 kwargs['suptitle'] = 'Details'
283 283
284 284 kwargs['form'] = form
285 285 kwargs['button'] = 'Add Experiment'
286 286
287 287 return render(request, 'campaign.html', kwargs)
288 288
289 289 def campaign_new(request):
290 290
291 291 if request.method == 'GET':
292 292 form = CampaignForm()
293 293
294 294 if request.method == 'POST':
295 295 form = CampaignForm(request.POST)
296 296
297 297 if form.is_valid():
298 298 campaign = form.save()
299 299 return redirect('url_campaign', id_camp=campaign.id)
300 300
301 301 kwargs = {}
302 302 kwargs['form'] = form
303 303 kwargs['title'] = 'Campaign'
304 304 kwargs['suptitle'] = 'New'
305 305 kwargs['button'] = 'Create'
306 306
307 307 return render(request, 'campaign_edit.html', kwargs)
308 308
309 309 def campaign_edit(request, id_camp):
310 310
311 311 campaign = get_object_or_404(Campaign, pk=id_camp)
312 312
313 313 if request.method=='GET':
314 314 form = CampaignForm(instance=campaign)
315 315
316 316 if request.method=='POST':
317 317 form = CampaignForm(request.POST, instance=campaign)
318 318
319 319 if form.is_valid():
320 320 form.save()
321 321 return redirect('url_campaign', id_camp=id_camp)
322 322
323 323 kwargs = {}
324 324 kwargs['form'] = form
325 325 kwargs['title'] = 'Campaign'
326 326 kwargs['suptitle'] = 'Edit'
327 327 kwargs['button'] = 'Update'
328 328
329 329 return render(request, 'campaign_edit.html', kwargs)
330 330
331 331 def campaign_delete(request, id_camp):
332 332
333 333 campaign = get_object_or_404(Campaign, pk=id_camp)
334 334
335 335 if request.method=='POST':
336 336 if request.user.is_staff:
337 337 campaign.delete()
338 338 return redirect('url_campaigns')
339 339
340 340 return HttpResponse("Not enough permission to delete this object")
341 341
342 342 kwargs = {'object':campaign, 'camp_active':'active',
343 343 'url_cancel':'url_campaign', 'id_item':id_camp}
344 344
345 345 return render(request, 'item_delete.html', kwargs)
346 346
347 347 def experiments(request):
348 348
349 349 experiment_list = Experiment.objects.all().order_by('campaign')
350 350
351 351 keys = ['id', 'name', 'start_time', 'end_time', 'campaign']
352 352
353 353 kwargs = {}
354 354
355 355 kwargs['experiment_keys'] = keys[1:]
356 356 kwargs['experiments'] = experiment_list#.values(*keys)
357 357
358 358 kwargs['title'] = 'Experiment'
359 359 kwargs['suptitle'] = 'List'
360 360 kwargs['button'] = 'New Experiment'
361 361
362 362 return render(request, 'experiments.html', kwargs)
363 363
364 364 def experiment(request, id_exp):
365 365
366 366 experiment = get_object_or_404(Experiment, pk=id_exp)
367 367
368 368 experiments = Experiment.objects.filter(campaign=experiment.campaign)
369 369 configurations = Configuration.objects.filter(experiment=experiment, type=0)
370 370
371 371 kwargs = {}
372 372
373 373 exp_keys = ['id', 'campaign', 'location', 'name', 'start_time', 'end_time']
374 374 conf_keys = ['id', 'device__name', 'device__device_type', 'device__ip_address', 'device__port_address']
375 375
376 376 conf_labels = ['id', 'device__name', 'device_type', 'ip_address', 'port_address']
377 377
378 378 kwargs['experiment_keys'] = exp_keys[1:]
379 379 kwargs['experiment'] = experiment
380 380
381 381 kwargs['experiments'] = experiments.values(*exp_keys)
382 382
383 383 kwargs['configuration_labels'] = conf_labels[1:]
384 384 kwargs['configuration_keys'] = conf_keys[1:]
385 385 kwargs['configurations'] = configurations #.values(*conf_keys)
386 386
387 387 kwargs['title'] = 'Experiment'
388 388 kwargs['suptitle'] = 'Details'
389 389
390 390 kwargs['button'] = 'Add Configuration'
391 391
392 392 return render(request, 'experiment.html', kwargs)
393 393
394 394 def experiment_new(request, id_camp=0):
395 395
396 396 if request.method == 'GET':
397 397 form = ExperimentForm(initial={'campaign':id_camp})
398 398
399 399 if request.method == 'POST':
400 400 form = ExperimentForm(request.POST, initial={'campaign':id_camp})
401 401
402 402 if form.is_valid():
403 403 experiment = form.save()
404 404 return redirect('url_experiment', id_exp=experiment.id)
405 405
406 406 kwargs = {}
407 407 kwargs['form'] = form
408 408 kwargs['title'] = 'Experiment'
409 409 kwargs['suptitle'] = 'New'
410 410 kwargs['button'] = 'Create'
411 411
412 412 return render(request, 'experiment_edit.html', kwargs)
413 413
414 414 def experiment_edit(request, id_exp):
415 415
416 416 experiment = get_object_or_404(Experiment, pk=id_exp)
417 417
418 418 if request.method == 'GET':
419 419 form = ExperimentForm(instance=experiment)
420 420
421 421 if request.method=='POST':
422 422 form = ExperimentForm(request.POST, instance=experiment)
423 423
424 424 if form.is_valid():
425 425 experiment = form.save()
426 426 return redirect('url_experiment', id_exp=experiment.id)
427 427
428 428 kwargs = {}
429 429 kwargs['form'] = form
430 430 kwargs['title'] = 'Experiment'
431 431 kwargs['suptitle'] = 'Edit'
432 432 kwargs['button'] = 'Update'
433 433
434 434 return render(request, 'experiment_edit.html', kwargs)
435 435
436 436 def experiment_delete(request, id_exp):
437 437
438 438 experiment = get_object_or_404(Experiment, pk=id_exp)
439 439
440 440 if request.method=='POST':
441 441 if request.user.is_staff:
442 442 id_camp = experiment.campaign.id
443 443 experiment.delete()
444 444 return redirect('url_campaign', id_camp=id_camp)
445 445
446 446 return HttpResponse("Not enough permission to delete this object")
447 447
448 448 kwargs = {'object':experiment, 'exp_active':'active',
449 449 'url_cancel':'url_experiment', 'id_item':id_exp}
450 450
451 451 return render(request, 'item_delete.html', kwargs)
452 452
453 453 def dev_confs(request):
454 454
455 455 configurations = Configuration.objects.all().order_by('type', 'device__device_type', 'experiment')
456 456
457 457 # keys = ['id', 'device__device_type__name', 'device__name', 'experiment__campaign__name', 'experiment__name']
458 458
459 459 keys = ['id', 'device', 'experiment', 'type', 'programmed_date']
460 460
461 461 kwargs = {}
462 462
463 463 kwargs['configuration_keys'] = keys[1:]
464 464 kwargs['configurations'] = configurations#.values(*keys)
465 465
466 466 kwargs['title'] = 'Configuration'
467 467 kwargs['suptitle'] = 'List'
468 468 kwargs['button'] = 'New Configuration'
469 469
470 470 return render(request, 'dev_confs.html', kwargs)
471 471
472 472 def dev_conf(request, id_conf):
473 473
474 474 conf = get_object_or_404(Configuration, pk=id_conf)
475 475
476 476 DevConfModel = CONF_MODELS[conf.device.device_type.name]
477 477 dev_conf = DevConfModel.objects.get(pk=id_conf)
478 478
479 479 kwargs = {}
480 480 kwargs['dev_conf'] = dev_conf
481 481 kwargs['dev_conf_keys'] = ['name', 'experiment', 'device']
482 482
483 483 kwargs['title'] = 'Configuration'
484 484 kwargs['suptitle'] = 'Details'
485 485
486 486 kwargs['button'] = 'Edit Configuration'
487 487
488 488 ###### SIDEBAR ######
489 489 kwargs.update(sidebar(conf))
490 490
491 491 return render(request, 'dev_conf.html', kwargs)
492 492
493 493 def dev_conf_new(request, id_exp=0):
494 494
495 495 if request.method == 'GET':
496 496 form = ConfigurationForm(initial={'experiment':id_exp})
497 497
498 498 if request.method == 'POST':
499 499 experiment = Experiment.objects.get(pk=request.POST['experiment'])
500 500 device = Device.objects.get(pk=request.POST['device'])
501 501
502 502 DevConfForm = CONF_FORMS[device.device_type.name]
503 503
504 504 form = DevConfForm(request.POST, initial={'experiment':experiment.id})
505 505
506 506 if form.is_valid():
507 507 dev_conf = form.save()
508 508
509 509 return redirect('url_experiment', id_exp=experiment.id)
510 510
511 511 kwargs = {}
512 512 kwargs['form'] = form
513 513 kwargs['title'] = 'Configuration'
514 514 kwargs['suptitle'] = 'New'
515 515 kwargs['button'] = 'Create'
516 516
517 517 return render(request, 'dev_conf_edit.html', kwargs)
518 518
519 519 def dev_conf_edit(request, id_conf):
520 520
521 521 conf = get_object_or_404(Configuration, pk=id_conf)
522 522
523 523 DevConfModel = CONF_MODELS[conf.device.device_type.name]
524 524 DevConfForm = CONF_FORMS[conf.device.device_type.name]
525 525
526 526 dev_conf = DevConfModel.objects.get(pk=id_conf)
527 527
528 528 if request.method=='GET':
529 529 form = DevConfForm(instance=dev_conf)
530 530
531 531 if request.method=='POST':
532 532 form = DevConfForm(request.POST, instance=dev_conf)
533 533
534 534 if form.is_valid():
535 535 form.save()
536 536 return redirect('url_dev_conf', id_conf=id_conf)
537 537
538 538 kwargs = {}
539 539 kwargs['form'] = form
540 540 kwargs['title'] = 'Device Configuration'
541 541 kwargs['suptitle'] = 'Edit'
542 542 kwargs['button'] = 'Update'
543 543
544 544 ###### SIDEBAR ######
545 545 kwargs.update(sidebar(conf))
546 546
547 547 return render(request, '%s_conf_edit.html' %conf.device.device_type.name, kwargs)
548 548
549 549 def dev_conf_start(request, id_conf):
550 550
551 551 conf = get_object_or_404(Configuration, pk=id_conf)
552 552
553 553 DevConfModel = CONF_MODELS[conf.device.device_type.name]
554 554
555 555 conf = DevConfModel.objects.get(pk=id_conf)
556 556
557 557 if conf.start_device():
558 558 messages.success(request, conf.message)
559 559 else:
560 560 messages.error(request, conf.message)
561 561
562 562 conf.status_device()
563 563
564 564 return redirect(conf.get_absolute_url())
565 565
566 566 def dev_conf_stop(request, id_conf):
567 567
568 568 conf = get_object_or_404(Configuration, pk=id_conf)
569 569
570 570 DevConfModel = CONF_MODELS[conf.device.device_type.name]
571 571
572 572 conf = DevConfModel.objects.get(pk=id_conf)
573 573
574 574 if conf.stop_device():
575 575 messages.success(request, conf.message)
576 576 else:
577 577 messages.error(request, conf.message)
578 578
579 579 conf.status_device()
580 580
581 581 return redirect(conf.get_absolute_url())
582 582
583 583 def dev_conf_status(request, id_conf):
584 584
585 585 conf = get_object_or_404(Configuration, pk=id_conf)
586 586
587 587 DevConfModel = CONF_MODELS[conf.device.device_type.name]
588 588
589 589 conf = DevConfModel.objects.get(pk=id_conf)
590 590
591 591 if conf.status_device():
592 592 messages.success(request, conf.message)
593 593 else:
594 594 messages.error(request, conf.message)
595 595
596 596 return redirect(conf.get_absolute_url())
597 597
598 598
599 599 def dev_conf_write(request, id_conf):
600 600
601 601 conf = get_object_or_404(Configuration, pk=id_conf)
602 602
603 603 DevConfModel = CONF_MODELS[conf.device.device_type.name]
604 604
605 605 conf = DevConfModel.objects.get(pk=id_conf)
606 606
607 607 answer = conf.write_device()
608 608 conf.status_device()
609 609
610 610 if answer:
611 611 messages.success(request, conf.message)
612 612
613 613 #Creating a historical configuration
614 614 conf.pk = None
615 615 conf.id = None
616 616 conf.type = 1
617 617 conf.template = 0
618 618 conf.save()
619 619
620 620 #Original configuration
621 621 conf = DevConfModel.objects.get(pk=id_conf)
622 622 else:
623 623 messages.error(request, conf.message)
624 624
625 625 return redirect(conf.get_absolute_url())
626 626
627 627 def dev_conf_read(request, id_conf):
628 628
629 629 conf = get_object_or_404(Configuration, pk=id_conf)
630 630
631 631 DevConfModel = CONF_MODELS[conf.device.device_type.name]
632 632 DevConfForm = CONF_FORMS[conf.device.device_type.name]
633 633
634 634 conf = DevConfModel.objects.get(pk=id_conf)
635 635
636 636 if request.method=='GET':
637 637
638 638 parms = conf.read_device()
639 639 conf.status_device()
640 640
641 641 if not parms:
642 642 messages.error(request, conf.message)
643 643 return redirect(conf.get_absolute_url())
644 644
645 645 form = DevConfForm(initial=parms, instance=conf)
646 646
647 647 if request.method=='POST':
648 648 form = DevConfForm(request.POST, instance=conf)
649 649
650 650 if form.is_valid():
651 651 form.save()
652 652 return redirect(conf.get_absolute_url())
653 653
654 654 messages.error(request, "Parameters could not be saved")
655 655
656 656 kwargs = {}
657 657 kwargs['id_dev'] = conf.id
658 658 kwargs['form'] = form
659 659 kwargs['title'] = 'Device Configuration'
660 660 kwargs['suptitle'] = 'Parameters read from device'
661 661 kwargs['button'] = 'Save'
662 662
663 663 ###### SIDEBAR ######
664 664 kwargs.update(sidebar(conf))
665 665
666 666 return render(request, '%s_conf_edit.html' %conf.device.device_type.name, kwargs)
667 667
668 668 def dev_conf_import(request, id_conf):
669 669
670 670 conf = get_object_or_404(Configuration, pk=id_conf)
671 671
672 672 DevConfModel = CONF_MODELS[conf.device.device_type.name]
673 673 DevConfForm = CONF_FORMS[conf.device.device_type.name]
674 674
675 675 conf = DevConfModel.objects.get(pk=id_conf)
676 676
677 677 if request.method == 'GET':
678 678 file_form = UploadFileForm()
679 679
680 680 if request.method == 'POST':
681 681 file_form = UploadFileForm(request.POST, request.FILES)
682 682
683 683 if file_form.is_valid():
684 684
685 685 parms = conf.import_from_file(request.FILES['file'])
686 686
687 687 if parms:
688 688 messages.success(request, "Parameters imported from: '%s'." %request.FILES['file'].name)
689 689 print parms
690 690 form = DevConfForm(initial=parms, instance=conf)
691 691
692 692 kwargs = {}
693 693 kwargs['id_dev'] = conf.id
694 694 kwargs['form'] = form
695 695 kwargs['title'] = 'Device Configuration'
696 696 kwargs['suptitle'] = 'Parameters imported'
697 697 kwargs['button'] = 'Save'
698 698 kwargs['action'] = conf.get_absolute_url_edit()
699 699 kwargs['previous'] = conf.get_absolute_url()
700 700
701 701 ###### SIDEBAR ######
702 702 kwargs.update(sidebar(conf))
703 703
704 704 return render(request, '%s_conf_edit.html' %conf.device.device_type.name, kwargs)
705 705
706 706 messages.error(request, "Could not import parameters from file")
707 707
708 708 kwargs = {}
709 709 kwargs['id_dev'] = conf.id
710 710 kwargs['title'] = 'Device Configuration'
711 711 kwargs['form'] = file_form
712 712 kwargs['suptitle'] = 'Importing file'
713 713 kwargs['button'] = 'Import'
714 714
715 715 kwargs.update(sidebar(conf))
716 716
717 717 return render(request, 'dev_conf_import.html', kwargs)
718 718
719 719 def dev_conf_export(request, id_conf):
720 720
721 721 conf = get_object_or_404(Configuration, pk=id_conf)
722 722
723 723 DevConfModel = CONF_MODELS[conf.device.device_type.name]
724 724
725 725 conf = DevConfModel.objects.get(pk=id_conf)
726 726
727 727 if request.method == 'GET':
728 728 file_form = DownloadFileForm(conf.device.device_type.name)
729 729
730 730 if request.method == 'POST':
731 731 file_form = DownloadFileForm(conf.device.device_type.name, request.POST)
732 732
733 733 if file_form.is_valid():
734 734 fields = conf.export_to_file(format = file_form.cleaned_data['format'])
735 735
736 736 response = HttpResponse(content_type=fields['content_type'])
737 737 response['Content-Disposition'] = 'attachment; filename="%s"' %fields['filename']
738 738 response.write(fields['content'])
739 739
740 740 return response
741 741
742 742 messages.error(request, "Could not export parameters")
743 743
744 744 kwargs = {}
745 745 kwargs['id_dev'] = conf.id
746 746 kwargs['title'] = 'Device Configuration'
747 747 kwargs['form'] = file_form
748 748 kwargs['suptitle'] = 'Exporting file'
749 749 kwargs['button'] = 'Export'
750 750
751 751 return render(request, 'dev_conf_export.html', kwargs)
752 752
753 753 def dev_conf_delete(request, id_conf):
754 754
755 755 conf = get_object_or_404(Configuration, pk=id_conf)
756 756
757 757 if request.method=='POST':
758 758 if request.user.is_staff:
759 759 id_exp = conf.experiment.id
760 760 conf.delete()
761 761 return redirect('url_experiment', id_exp=id_exp)
762 762
763 763 return HttpResponse("Not enough permission to delete this object")
764 764
765 765 kwargs = {'object':conf, 'conf_active':'active',
766 766 'url_cancel':'url_dev_conf', 'id_item':id_conf}
767 767
768 768 ###### SIDEBAR ######
769 769 kwargs.update(sidebar(conf))
770 770
771 771 return render(request, 'item_delete.html', kwargs)
772 772
773 773 def sidebar(conf):
774 774
775 775 experiments = Experiment.objects.filter(campaign=conf.experiment.campaign)
776 776 configurations = Configuration.objects.filter(experiment=conf.experiment, type=0)
777 777
778 778 exp_keys = ['id', 'campaign', 'name', 'start_time', 'end_time']
779 779 conf_keys = ['id', 'device']
780 780
781 781 kwargs = {}
782 782
783 783 kwargs['dev_conf'] = conf
784 784
785 785 kwargs['experiment_keys'] = exp_keys[1:]
786 786 kwargs['experiments'] = experiments.values(*exp_keys)
787 787
788 788 kwargs['configuration_keys'] = conf_keys[1:]
789 789 kwargs['configurations'] = configurations #.values(*conf_keys)
790 790
791 791 return kwargs
792 792
793 793
794 794 def operation(request, id_camp=None):
795 795
796 796 if not id_camp:
797 797 campaigns = Campaign.objects.all().order_by('-start_date')
798 798
799 799 if not campaigns:
800 kwargs['title'] = 'No Campaigns'
801 kwargs['suptitle'] = 'Empty'
800 802 return render(request, 'operation.html', {})
801 803
802 804 id_camp = campaigns[0].id
803 805
804 806 campaign = get_object_or_404(Campaign, pk = id_camp)
805 807
806 808 if request.method=='GET':
807 809 form = OperationForm(initial={'campaign': campaign.id}, length = 5)
808 810
809 811 if request.method=='POST':
810 812 form = OperationForm(request.POST, initial={'campaign':campaign.id}, length = 5)
811 813
812 814 if form.is_valid():
813 815 return redirect('url_operation', id_camp=campaign.id)
814 816 locations = Location.objects.filter(experiment__campaign__pk = campaign.id).distinct()
815 817 experiments = Experiment.objects.filter(campaign__pk=campaign.id)
816 818 #experiments = [Experiment.objects.filter(location__pk=location.id).filter(campaign__pk=campaign.id) for location in locations]
817 819 kwargs = {}
818 820 #---Campaign
819 821 kwargs['campaign'] = campaign
820 822 kwargs['campaign_keys'] = ['name', 'start_date', 'end_date', 'tags', 'description']
821 823 #---Experiment
822 824 keys = ['id', 'name', 'start_time', 'end_time']
823 825 kwargs['experiment_keys'] = keys[1:]
824 826 kwargs['experiments'] = experiments
825 827 #---Radar
826 828 kwargs['locations'] = locations
827 829 #---Else
828 830 kwargs['title'] = 'Campaign'
829 831 kwargs['suptitle'] = campaign.name
830 832 kwargs['form'] = form
831 833 kwargs['button'] = 'Search'
832 834 kwargs['details'] = True
833 835 kwargs['search_button'] = True
834 836
835 837 return render(request, 'operation.html', kwargs)
836 838
837 839 def operation_search(request, id_camp=None, location_play = None):
838 840
839 841
840 842 if not id_camp:
841 843 campaigns = Campaign.objects.all().order_by('-start_date')
842 844 form = OperationSearchForm()
843 845
844 846 if not campaigns:
845 847 return render(request, 'operation.html', {})
846 848
847 849 id_camp = campaigns[0].id
848 850 campaign = get_object_or_404(Campaign, pk = id_camp)
849 851
850 852 kwargs = {}
851 853 kwargs['title'] = 'All Campaigns'
852 854 kwargs['form'] = form
855 kwargs['details'] = True
853 856 return render(request, 'operation.html', kwargs)
854 857
855 858 else:
856 859 campaign = get_object_or_404(Campaign, pk = id_camp)
857 860 locations = Location.objects.filter(experiment__campaign__pk = campaign.id).distinct()
858 861 experiments = Experiment.objects.filter(campaign__pk=campaign.id)
859 862 #experiments = [Experiment.objects.filter(location__pk=location.id).filter(campaign__pk=campaign.id) for location in locations]
860 863 form = OperationSearchForm(initial={'campaign': campaign.id})
861 864
862 865 kwargs = {}
863 866 #---Campaign
864 867 kwargs['campaign'] = campaign
865 868 kwargs['campaign_keys'] = ['name', 'start_date', 'end_date', 'tags', 'description']
866 869 #---Experiment
867 870 keys = ['id', 'name', 'start_time', 'end_time']
868 871 kwargs['experiment_keys'] = keys[1:]
869 872 kwargs['experiments'] = experiments
870 873 #---Radar
871 874 kwargs['locations'] = locations
872 875 #---Else
873 876 kwargs['title'] = 'Campaign'
874 877 kwargs['suptitle'] = campaign.name
875 878 kwargs['form'] = form
876 879 kwargs['button'] = 'Select'
877 880 kwargs['details'] = True
878 881 kwargs['search_button'] = False
879 882
880 883
881 884 if request.method=='POST':
882 885 form = OperationSearchForm(request.POST, initial={'campaign':campaign.id})
883 886
884 887 if form.is_valid():
885 888 return redirect('operation.html', id_camp=campaign.id)
886 889
887 890
888 891 return render(request, 'operation.html', kwargs) No newline at end of file
General Comments 0
You need to be logged in to leave comments. Login now