##// END OF EJS Templates
Task #784: Nivel de Permisos de Usuario...
Fiorella Quino -
r211:04ac1b140a72
parent child
Show More
@@ -34,6 +34,9 from apps.abs.models import ABSConfiguration
34 from apps.rc.models import RCConfiguration, RCLine, RCLineType
34 from apps.rc.models import RCConfiguration, RCLine, RCLineType
35 from apps.dds.models import DDSConfiguration
35 from apps.dds.models import DDSConfiguration
36
36
37 from django.contrib.auth.decorators import login_required
38 from django.contrib.admin.views.decorators import staff_member_required
39
37
40
38 CONF_FORMS = {
41 CONF_FORMS = {
39 'rc': RCConfigurationForm,
42 'rc': RCConfigurationForm,
@@ -101,6 +104,7 def location(request, id_loc):
101 return render(request, 'location.html', kwargs)
104 return render(request, 'location.html', kwargs)
102
105
103
106
107 @staff_member_required(login_url='/accounts/login/')
104 def location_new(request):
108 def location_new(request):
105
109
106 if request.method == 'GET':
110 if request.method == 'GET':
@@ -122,6 +126,7 def location_new(request):
122 return render(request, 'base_edit.html', kwargs)
126 return render(request, 'base_edit.html', kwargs)
123
127
124
128
129 @staff_member_required(login_url='/accounts/login/')
125 def location_edit(request, id_loc):
130 def location_edit(request, id_loc):
126
131
127 location = get_object_or_404(Location, pk=id_loc)
132 location = get_object_or_404(Location, pk=id_loc)
@@ -145,6 +150,7 def location_edit(request, id_loc):
145 return render(request, 'base_edit.html', kwargs)
150 return render(request, 'base_edit.html', kwargs)
146
151
147
152
153 @staff_member_required(login_url='/accounts/login/')
148 def location_delete(request, id_loc):
154 def location_delete(request, id_loc):
149
155
150 location = get_object_or_404(Location, pk=id_loc)
156 location = get_object_or_404(Location, pk=id_loc)
@@ -197,6 +203,7 def device(request, id_dev):
197 return render(request, 'device.html', kwargs)
203 return render(request, 'device.html', kwargs)
198
204
199
205
206 @staff_member_required(login_url='/accounts/login/')
200 def device_new(request):
207 def device_new(request):
201
208
202 if request.method == 'GET':
209 if request.method == 'GET':
@@ -218,6 +225,7 def device_new(request):
218 return render(request, 'base_edit.html', kwargs)
225 return render(request, 'base_edit.html', kwargs)
219
226
220
227
228 @staff_member_required(login_url='/accounts/login/')
221 def device_edit(request, id_dev):
229 def device_edit(request, id_dev):
222
230
223 device = get_object_or_404(Device, pk=id_dev)
231 device = get_object_or_404(Device, pk=id_dev)
@@ -241,6 +249,7 def device_edit(request, id_dev):
241 return render(request, 'base_edit.html', kwargs)
249 return render(request, 'base_edit.html', kwargs)
242
250
243
251
252 @staff_member_required(login_url='/accounts/login/')
244 def device_delete(request, id_dev):
253 def device_delete(request, id_dev):
245
254
246 device = get_object_or_404(Device, pk=id_dev)
255 device = get_object_or_404(Device, pk=id_dev)
@@ -308,6 +317,7 def campaign(request, id_camp):
308 return render(request, 'campaign.html', kwargs)
317 return render(request, 'campaign.html', kwargs)
309
318
310
319
320 @staff_member_required(login_url='/accounts/login/')
311 def campaign_new(request):
321 def campaign_new(request):
312
322
313 kwargs = {}
323 kwargs = {}
@@ -360,6 +370,7 def campaign_new(request):
360 return render(request, 'campaign_edit.html', kwargs)
370 return render(request, 'campaign_edit.html', kwargs)
361
371
362
372
373 @staff_member_required(login_url='/accounts/login/')
363 def campaign_edit(request, id_camp):
374 def campaign_edit(request, id_camp):
364
375
365 campaign = get_object_or_404(Campaign, pk=id_camp)
376 campaign = get_object_or_404(Campaign, pk=id_camp)
@@ -400,6 +411,7 def campaign_edit(request, id_camp):
400 return render(request, 'campaign_edit.html', kwargs)
411 return render(request, 'campaign_edit.html', kwargs)
401
412
402
413
414 @staff_member_required(login_url='/accounts/login/')
403 def campaign_delete(request, id_camp):
415 def campaign_delete(request, id_camp):
404
416
405 campaign = get_object_or_404(Campaign, pk=id_camp)
417 campaign = get_object_or_404(Campaign, pk=id_camp)
@@ -428,6 +440,8 def campaign_delete(request, id_camp):
428
440
429 return render(request, 'confirm.html', kwargs)
441 return render(request, 'confirm.html', kwargs)
430
442
443
444 @staff_member_required(login_url='/accounts/login/')
431 def campaign_export(request, id_camp):
445 def campaign_export(request, id_camp):
432
446
433 campaign = get_object_or_404(Campaign, pk=id_camp)
447 campaign = get_object_or_404(Campaign, pk=id_camp)
@@ -442,6 +456,7 def campaign_export(request, id_camp):
442 return response
456 return response
443
457
444
458
459 @staff_member_required(login_url='/accounts/login/')
445 def campaign_import(request, id_camp):
460 def campaign_import(request, id_camp):
446
461
447 campaign = get_object_or_404(Campaign, pk=id_camp)
462 campaign = get_object_or_404(Campaign, pk=id_camp)
@@ -522,6 +537,7 def experiment(request, id_exp):
522 return render(request, 'experiment.html', kwargs)
537 return render(request, 'experiment.html', kwargs)
523
538
524
539
540 @staff_member_required(login_url='/accounts/login/')
525 def experiment_new(request, id_camp=None):
541 def experiment_new(request, id_camp=None):
526
542
527 kwargs = {}
543 kwargs = {}
@@ -564,6 +580,7 def experiment_new(request, id_camp=None):
564 return render(request, 'experiment_edit.html', kwargs)
580 return render(request, 'experiment_edit.html', kwargs)
565
581
566
582
583 @staff_member_required(login_url='/accounts/login/')
567 def experiment_edit(request, id_exp):
584 def experiment_edit(request, id_exp):
568
585
569 experiment = get_object_or_404(Experiment, pk=id_exp)
586 experiment = get_object_or_404(Experiment, pk=id_exp)
@@ -587,6 +604,7 def experiment_edit(request, id_exp):
587 return render(request, 'experiment_edit.html', kwargs)
604 return render(request, 'experiment_edit.html', kwargs)
588
605
589
606
607 @staff_member_required(login_url='/accounts/login/')
590 def experiment_delete(request, id_exp):
608 def experiment_delete(request, id_exp):
591
609
592 experiment = get_object_or_404(Experiment, pk=id_exp)
610 experiment = get_object_or_404(Experiment, pk=id_exp)
@@ -612,6 +630,7 def experiment_delete(request, id_exp):
612 return render(request, 'confirm.html', kwargs)
630 return render(request, 'confirm.html', kwargs)
613
631
614
632
633 @staff_member_required(login_url='/accounts/login/')
615 def experiment_export(request, id_exp):
634 def experiment_export(request, id_exp):
616
635
617 experiment = get_object_or_404(Experiment, pk=id_exp)
636 experiment = get_object_or_404(Experiment, pk=id_exp)
@@ -625,6 +644,8 def experiment_export(request, id_exp):
625
644
626 return response
645 return response
627
646
647
648 @staff_member_required(login_url='/accounts/login/')
628 def experiment_import(request, id_exp):
649 def experiment_import(request, id_exp):
629
650
630 experiment = get_object_or_404(Experiment, pk=id_exp)
651 experiment = get_object_or_404(Experiment, pk=id_exp)
@@ -660,6 +681,8 def experiment_import(request, id_exp):
660
681
661 return render(request, 'experiment_import.html', kwargs)
682 return render(request, 'experiment_import.html', kwargs)
662
683
684
685 @staff_member_required(login_url='/accounts/login/')
663 def experiment_mix(request, id_exp):
686 def experiment_mix(request, id_exp):
664
687
665 experiment = get_object_or_404(Experiment, pk=id_exp)
688 experiment = get_object_or_404(Experiment, pk=id_exp)
@@ -753,6 +776,7 def experiment_mix(request, id_exp):
753 return render(request, 'experiment_mix.html', kwargs)
776 return render(request, 'experiment_mix.html', kwargs)
754
777
755
778
779 @staff_member_required(login_url='/accounts/login/')
756 def experiment_mix_delete(request, id_exp):
780 def experiment_mix_delete(request, id_exp):
757
781
758 conf = RCConfiguration.objects.get(experiment=id_exp, mix=True)
782 conf = RCConfiguration.objects.get(experiment=id_exp, mix=True)
@@ -867,6 +891,8 def experiment_summary(request, id_exp):
867
891
868 return render(request, 'experiment_summary.html', kwargs)
892 return render(request, 'experiment_summary.html', kwargs)
869
893
894
895 @staff_member_required(login_url='/accounts/login/')
870 def experiment_verify(request, id_exp):
896 def experiment_verify(request, id_exp):
871
897
872 import json
898 import json
@@ -1036,6 +1062,7 def dev_conf(request, id_conf):
1036 return redirect(conf.get_absolute_url())
1062 return redirect(conf.get_absolute_url())
1037
1063
1038
1064
1065 @staff_member_required(login_url='/accounts/login/')
1039 def dev_conf_new(request, id_exp=0, id_dev=0):
1066 def dev_conf_new(request, id_exp=0, id_dev=0):
1040
1067
1041 initial = {}
1068 initial = {}
@@ -1109,6 +1136,7 def dev_conf_new(request, id_exp=0, id_dev=0):
1109 return render(request, 'dev_conf_edit.html', kwargs)
1136 return render(request, 'dev_conf_edit.html', kwargs)
1110
1137
1111
1138
1139 @staff_member_required(login_url='/accounts/login/')
1112 def dev_conf_edit(request, id_conf):
1140 def dev_conf_edit(request, id_conf):
1113
1141
1114 conf = get_object_or_404(Configuration, pk=id_conf)
1142 conf = get_object_or_404(Configuration, pk=id_conf)
@@ -1137,6 +1165,7 def dev_conf_edit(request, id_conf):
1137 return render(request, '%s_conf_edit.html' % conf.device.device_type.name, kwargs)
1165 return render(request, '%s_conf_edit.html' % conf.device.device_type.name, kwargs)
1138
1166
1139
1167
1168 @staff_member_required(login_url='/accounts/login/')
1140 def dev_conf_start(request, id_conf):
1169 def dev_conf_start(request, id_conf):
1141
1170
1142 conf = get_object_or_404(Configuration, pk=id_conf)
1171 conf = get_object_or_404(Configuration, pk=id_conf)
@@ -1151,6 +1180,7 def dev_conf_start(request, id_conf):
1151 return redirect(conf.get_absolute_url())
1180 return redirect(conf.get_absolute_url())
1152
1181
1153
1182
1183 @staff_member_required(login_url='/accounts/login/')
1154 def dev_conf_stop(request, id_conf):
1184 def dev_conf_stop(request, id_conf):
1155
1185
1156 conf = get_object_or_404(Configuration, pk=id_conf)
1186 conf = get_object_or_404(Configuration, pk=id_conf)
@@ -1165,6 +1195,7 def dev_conf_stop(request, id_conf):
1165 return redirect(conf.get_absolute_url())
1195 return redirect(conf.get_absolute_url())
1166
1196
1167
1197
1198 @staff_member_required(login_url='/accounts/login/')
1168 def dev_conf_status(request, id_conf):
1199 def dev_conf_status(request, id_conf):
1169
1200
1170 conf = get_object_or_404(Configuration, pk=id_conf)
1201 conf = get_object_or_404(Configuration, pk=id_conf)
@@ -1177,19 +1208,21 def dev_conf_status(request, id_conf):
1177 return redirect(conf.get_absolute_url())
1208 return redirect(conf.get_absolute_url())
1178
1209
1179
1210
1211 @staff_member_required(login_url='/accounts/login/')
1180 def dev_conf_write(request, id_conf):
1212 def dev_conf_write(request, id_conf):
1181
1213
1182 conf = get_object_or_404(Configuration, pk=id_conf)
1214 conf = get_object_or_404(Configuration, pk=id_conf)
1183
1215
1184 if conf.write_device():
1216 if conf.write_device():
1185 messages.success(request, conf.message)
1217 messages.success(request, conf.message)
1186 conf.clone(type=1, template=False)
1218 conf.clone(type=1, template=False)
1187 else:
1219 else:
1188 messages.error(request, conf.message)
1220 messages.error(request, conf.message)
1189
1221
1190 return redirect(conf.get_absolute_url())
1222 return redirect(conf.get_absolute_url())
1191
1223
1192
1224
1225 @staff_member_required(login_url='/accounts/login/')
1193 def dev_conf_read(request, id_conf):
1226 def dev_conf_read(request, id_conf):
1194
1227
1195 conf = get_object_or_404(Configuration, pk=id_conf)
1228 conf = get_object_or_404(Configuration, pk=id_conf)
@@ -1229,6 +1262,7 def dev_conf_read(request, id_conf):
1229 return render(request, '%s_conf_edit.html' %conf.device.device_type.name, kwargs)
1262 return render(request, '%s_conf_edit.html' %conf.device.device_type.name, kwargs)
1230
1263
1231
1264
1265 @staff_member_required(login_url='/accounts/login/')
1232 def dev_conf_import(request, id_conf):
1266 def dev_conf_import(request, id_conf):
1233
1267
1234 conf = get_object_or_404(Configuration, pk=id_conf)
1268 conf = get_object_or_404(Configuration, pk=id_conf)
@@ -1276,6 +1310,7 def dev_conf_import(request, id_conf):
1276 return render(request, 'dev_conf_import.html', kwargs)
1310 return render(request, 'dev_conf_import.html', kwargs)
1277
1311
1278
1312
1313 @staff_member_required(login_url='/accounts/login/')
1279 def dev_conf_export(request, id_conf):
1314 def dev_conf_export(request, id_conf):
1280
1315
1281 conf = get_object_or_404(Configuration, pk=id_conf)
1316 conf = get_object_or_404(Configuration, pk=id_conf)
@@ -1307,6 +1342,7 def dev_conf_export(request, id_conf):
1307 return render(request, 'dev_conf_export.html', kwargs)
1342 return render(request, 'dev_conf_export.html', kwargs)
1308
1343
1309
1344
1345 @staff_member_required(login_url='/accounts/login/')
1310 def dev_conf_delete(request, id_conf):
1346 def dev_conf_delete(request, id_conf):
1311
1347
1312 conf = get_object_or_404(Configuration, pk=id_conf)
1348 conf = get_object_or_404(Configuration, pk=id_conf)
@@ -1372,7 +1408,7 def get_paginator(model, page, order, filters={}, n=10):
1372 if 'tags' in filters:
1408 if 'tags' in filters:
1373 tags = filters.pop('tags')
1409 tags = filters.pop('tags')
1374 fields = [f.name for f in model._meta.get_fields()]
1410 fields = [f.name for f in model._meta.get_fields()]
1375
1411
1376 if 'tags' in fields:
1412 if 'tags' in fields:
1377 query = query | Q(tags__icontains=tags)
1413 query = query | Q(tags__icontains=tags)
1378 if 'name' in fields:
1414 if 'name' in fields:
@@ -1420,33 +1456,34 def operation(request, id_camp=None):
1420 kwargs['experiment_keys'] = keys[1:]
1456 kwargs['experiment_keys'] = keys[1:]
1421 kwargs['experiments'] = experiments
1457 kwargs['experiments'] = experiments
1422 #---Radar
1458 #---Radar
1423 kwargs['locations'] = campaign.get_experiments_by_radar()
1459 kwargs['locations'] = campaign.get_experiments_by_radar()
1424 kwargs['form'] = form
1460 kwargs['form'] = form
1425
1461
1426 return render(request, 'operation.html', kwargs)
1462 return render(request, 'operation.html', kwargs)
1427
1463
1428
1464
1465 @login_required
1429 def radar_start(request, id_camp, id_radar):
1466 def radar_start(request, id_camp, id_radar):
1430
1467
1431 campaign = get_object_or_404(Campaign, pk = id_camp)
1468 campaign = get_object_or_404(Campaign, pk = id_camp)
1432 experiments = campaign.get_experiments_by_radar(id_radar)[0]['experiments']
1469 experiments = campaign.get_experiments_by_radar(id_radar)[0]['experiments']
1433 now = datetime.utcnow()
1470 now = datetime.utcnow()
1434
1471
1435 for exp in experiments:
1472 for exp in experiments:
1436 date = datetime.combine(datetime.now().date(), exp.start_time)
1473 date = datetime.combine(datetime.now().date(), exp.start_time)
1437
1474
1438 if exp.status == 2:
1475 if exp.status == 2:
1439 messages.warning(request, 'Experiment {} already running'.format(exp))
1476 messages.warning(request, 'Experiment {} already running'.format(exp))
1440 continue
1477 continue
1441
1478
1442 if exp.status == 3:
1479 if exp.status == 3:
1443 messages.warning(request, 'Experiment {} already programmed'.format(exp))
1480 messages.warning(request, 'Experiment {} already programmed'.format(exp))
1444 continue
1481 continue
1445
1482
1446 if date>campaign.end_date or date<campaign.start_date:
1483 if date>campaign.end_date or date<campaign.start_date:
1447 messages.warning(request, 'Experiment {} out of date'.format(exp))
1484 messages.warning(request, 'Experiment {} out of date'.format(exp))
1448 continue
1485 continue
1449
1486
1450 if now>=date:
1487 if now>=date:
1451 task = task_start.delay(exp.pk)
1488 task = task_start.delay(exp.pk)
1452 exp.status = task.wait()
1489 exp.status = task.wait()
@@ -1458,23 +1495,24 def radar_start(request, id_camp, id_radar):
1458 task = task_start.apply_async((exp.pk,), eta=date)
1495 task = task_start.apply_async((exp.pk,), eta=date)
1459 exp.status = 3
1496 exp.status = 3
1460 messages.success(request, 'Experiment {} programmed to start at {}'.format(exp, date))
1497 messages.success(request, 'Experiment {} programmed to start at {}'.format(exp, date))
1461
1498
1462 exp.save()
1499 exp.save()
1463
1500
1464 return HttpResponseRedirect(reverse('url_operation', args=[id_camp]))
1501 return HttpResponseRedirect(reverse('url_operation', args=[id_camp]))
1465
1502
1466
1503
1504 @login_required
1467 def radar_stop(request, id_camp, id_radar):
1505 def radar_stop(request, id_camp, id_radar):
1468
1506
1469 campaign = get_object_or_404(Campaign, pk = id_camp)
1507 campaign = get_object_or_404(Campaign, pk = id_camp)
1470 experiments = campaign.get_experiments_by_radar(id_radar)[0]['experiments']
1508 experiments = campaign.get_experiments_by_radar(id_radar)[0]['experiments']
1471
1509
1472 for exp in experiments:
1510 for exp in experiments:
1473
1511
1474 if exp.status == 2:
1512 if exp.status == 2:
1475 task = task_stop.delay(exp.pk)
1513 task = task_stop.delay(exp.pk)
1476 exp.status = task.wait()
1514 exp.status = task.wait()
1477 messages.warning(request, 'Experiment {} stopped'.format(exp))
1515 messages.warning(request, 'Experiment {} stopped'.format(exp))
1478 exp.save()
1516 exp.save()
1479 else:
1517 else:
1480 messages.error(request, 'Experiment {} not running'.format(exp))
1518 messages.error(request, 'Experiment {} not running'.format(exp))
@@ -1482,12 +1520,13 def radar_stop(request, id_camp, id_radar):
1482 return HttpResponseRedirect(reverse('url_operation', args=[id_camp]))
1520 return HttpResponseRedirect(reverse('url_operation', args=[id_camp]))
1483
1521
1484
1522
1523 @login_required
1485 def radar_refresh(request, id_camp, id_radar):
1524 def radar_refresh(request, id_camp, id_radar):
1486
1525
1487 campaign = get_object_or_404(Campaign, pk = id_camp)
1526 campaign = get_object_or_404(Campaign, pk = id_camp)
1488 experiments = campaign.get_experiments_by_radar(id_radar)[0]['experiments']
1527 experiments = campaign.get_experiments_by_radar(id_radar)[0]['experiments']
1489
1528
1490 for exp in experiments:
1529 for exp in experiments:
1491 exp.get_status()
1530 exp.get_status()
1492
1531
1493 return HttpResponseRedirect(reverse('url_operation', args=[id_camp]))
1532 return HttpResponseRedirect(reverse('url_operation', args=[id_camp]))
General Comments 0
You need to be logged in to leave comments. Login now