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