@@ -0,0 +1,33 | |||||
|
1 | {% extends "base.html" %} | |||
|
2 | {% load bootstrap3 %} | |||
|
3 | {% load static %} | |||
|
4 | {% load main_tags %} | |||
|
5 | ||||
|
6 | {% block dev-active %}{{dev_active}}{% endblock %} | |||
|
7 | {% block camp-active %}{{camp_active}}{% endblock %} | |||
|
8 | {% block exp-active %}{{exp_active}}{% endblock %} | |||
|
9 | {% block conf-active %}{{conf_active}}{% endblock %} | |||
|
10 | ||||
|
11 | {% block content-title %}{{title}}{% endblock %} | |||
|
12 | {% block content-suptitle %}{{suptitle}}{% endblock %} | |||
|
13 | ||||
|
14 | {% block content %} | |||
|
15 | <form action="" method="post"> | |||
|
16 | {% csrf_token %} | |||
|
17 | <p>Are you sure you want to delete "{{ object }}"?</p> | |||
|
18 | <button type="button" class="btn btn-primary pull-right" style="margin-left: 10px" id="bt_cancel">Cancel</button> | |||
|
19 | <button type=submit class="btn btn-primary pull-right" style="margin-left: 10px" id="bt_ok">Confirm</button> | |||
|
20 | </form> | |||
|
21 | {% endblock %} | |||
|
22 | ||||
|
23 | {% block sidebar%} | |||
|
24 | {% include "sidebar_devices.html" %} | |||
|
25 | {% endblock %} | |||
|
26 | ||||
|
27 | {% block extra-js%} | |||
|
28 | <script type="text/javascript"> | |||
|
29 | $("#bt_cancel").click(function() { | |||
|
30 | document.location = "{%if url_cancel%} {% url url_cancel id_item %} {%endif%}"; | |||
|
31 | }); | |||
|
32 | </script> | |||
|
33 | {% endblock %} No newline at end of file |
@@ -100,5 +100,7 class Configuration(PolymorphicModel): | |||||
100 | db_table = 'db_configurations' |
|
100 | db_table = 'db_configurations' | |
101 |
|
101 | |||
102 | def __unicode__(self): |
|
102 | def __unicode__(self): | |
103 |
return u'%s |
|
103 | return u'[%s - %s]: %s' % (self.experiment.campaign.name, | |
|
104 | self.experiment.name, | |||
|
105 | self.device.name) | |||
104 | No newline at end of file |
|
106 |
@@ -37,12 +37,12 | |||||
37 | </div> |
|
37 | </div> | |
38 | <div class="collapse navbar-collapse" id="navigationbar"> |
|
38 | <div class="collapse navbar-collapse" id="navigationbar"> | |
39 | <ul class="nav navbar-nav"> |
|
39 | <ul class="nav navbar-nav"> | |
|
40 | <li class=" dropdown {% block dev-active %}{% endblock %}"><a href="{% url 'url_devices'%}">Devices</a> | |||
|
41 | </li> | |||
40 | <li class=" dropdown {% block camp-active %}{% endblock %}"><a href="{% url 'url_campaigns'%}">Campaigns</a> |
|
42 | <li class=" dropdown {% block camp-active %}{% endblock %}"><a href="{% url 'url_campaigns'%}">Campaigns</a> | |
41 | </li> |
|
43 | </li> | |
42 | <li class=" dropdown {% block exp-active %}{% endblock %}"><a href="{% url 'url_experiments'%}">Experiments</a> |
|
44 | <li class=" dropdown {% block exp-active %}{% endblock %}"><a href="{% url 'url_experiments'%}">Experiments</a> | |
43 | </li> |
|
45 | </li> | |
44 | <li class=" dropdown {% block dev-active %}{% endblock %}"><a href="{% url 'url_devices'%}">Devices</a> |
|
|||
45 | </li> |
|
|||
46 | <li class=" dropdown {% block conf-active %}{% endblock %}"><a href="{% url 'url_dev_confs'%}">Device Configurations</a> |
|
46 | <li class=" dropdown {% block conf-active %}{% endblock %}"><a href="{% url 'url_dev_confs'%}">Device Configurations</a> | |
47 | </li> |
|
47 | </li> | |
48 | </ul> |
|
48 | </ul> |
@@ -65,8 +65,6 | |||||
65 | {% endblock %} |
|
65 | {% endblock %} | |
66 |
|
66 | |||
67 | {% block extra-js%} |
|
67 | {% block extra-js%} | |
68 | <script src="{% static 'js/moment.min.js' %}"></script> |
|
|||
69 | <script src="{% static 'js/bootstrap-datetimepicker.min.js' %}"></script> |
|
|||
70 | <script type="text/javascript"> |
|
68 | <script type="text/javascript"> | |
71 | $('.input-group.date').datetimepicker({"format": "YYYY-MM-DD HH:mm"}); |
|
69 | $('.input-group.date').datetimepicker({"format": "YYYY-MM-DD HH:mm"}); | |
72 |
|
70 |
@@ -26,7 +26,6 | |||||
26 | {% endblock %} |
|
26 | {% endblock %} | |
27 |
|
27 | |||
28 | {% block extra-js%} |
|
28 | {% block extra-js%} | |
29 | <script src="{% static 'js/moment.min.js' %}"></script> |
|
|||
30 | <script src="{% static 'js/bootstrap-datetimepicker.min.js' %}"></script> |
|
29 | <script src="{% static 'js/bootstrap-datetimepicker.min.js' %}"></script> | |
31 | <script type="text/javascript"> |
|
30 | <script type="text/javascript"> | |
32 | $('.input-group.date').datetimepicker({"format": "YYYY-MM-DD HH:mm"}); |
|
31 | $('.input-group.date').datetimepicker({"format": "YYYY-MM-DD HH:mm"}); |
@@ -36,11 +36,7 | |||||
36 | {% endblock %} |
|
36 | {% endblock %} | |
37 |
|
37 | |||
38 | {% block extra-js%} |
|
38 | {% block extra-js%} | |
39 | <script src="{% static 'js/moment.min.js' %}"></script> |
|
|||
40 | <script src="{% static 'js/bootstrap-datetimepicker.min.js' %}"></script> |
|
|||
41 | <script type="text/javascript"> |
|
39 | <script type="text/javascript"> | |
42 | $('.input-group.date').datetimepicker({"format": "YYYY-MM-DD HH:mm"}); |
|
|||
43 | $('.input-group.time').datetimepicker({"format": "HH:mm"}); |
|
|||
44 |
|
40 | |||
45 | $("#bt_add").click(function() { |
|
41 | $("#bt_add").click(function() { | |
46 | document.location = "{% url 'url_add_campaign' %}"; |
|
42 | document.location = "{% url 'url_add_campaign' %}"; |
@@ -36,12 +36,8 | |||||
36 | {% endblock %} |
|
36 | {% endblock %} | |
37 |
|
37 | |||
38 | {% block extra-js%} |
|
38 | {% block extra-js%} | |
39 | <script src="{% static 'js/moment.min.js' %}"></script> |
|
|||
40 | <script src="{% static 'js/bootstrap-datetimepicker.min.js' %}"></script> |
|
|||
41 | <script type="text/javascript"> |
|
39 | <script type="text/javascript"> | |
42 | $('.input-group.date').datetimepicker({"format": "YYYY-MM-DD HH:mm"}); |
|
40 | ||
43 | $('.input-group.time').datetimepicker({"format": "HH:mm"}); |
|
|||
44 |
|
||||
45 | $("#bt_add").click(function() { |
|
41 | $("#bt_add").click(function() { | |
46 | document.location = "{% url 'url_add_dev_conf' 0%}"; |
|
42 | document.location = "{% url 'url_add_dev_conf' 0%}"; | |
47 | }); |
|
43 | }); |
@@ -24,8 +24,6 | |||||
24 | {% endblock %} |
|
24 | {% endblock %} | |
25 |
|
25 | |||
26 | {% block extra-js%} |
|
26 | {% block extra-js%} | |
27 | <script src="{% static 'js/moment.min.js' %}"></script> |
|
|||
28 | <script src="{% static 'js/bootstrap-datetimepicker.min.js' %}"></script> |
|
|||
29 | <script type="text/javascript"> |
|
27 | <script type="text/javascript"> | |
30 |
|
28 | |||
31 | $("#bt_edit_device").click(function() { |
|
29 | $("#bt_edit_device").click(function() { |
@@ -33,8 +33,6 | |||||
33 | {% endblock %} |
|
33 | {% endblock %} | |
34 |
|
34 | |||
35 | {% block extra-js%} |
|
35 | {% block extra-js%} | |
36 | <script src="{% static 'js/moment.min.js' %}"></script> |
|
|||
37 | <script src="{% static 'js/bootstrap-datetimepicker.min.js' %}"></script> |
|
|||
38 | <script type="text/javascript"> |
|
36 | <script type="text/javascript"> | |
39 |
|
37 | |||
40 | $("#bt_add").click(function() { |
|
38 | $("#bt_add").click(function() { |
@@ -62,9 +62,6 | |||||
62 | {% endblock %} |
|
62 | {% endblock %} | |
63 |
|
63 | |||
64 | {% block extra-js%} |
|
64 | {% block extra-js%} | |
65 |
|
||||
66 | <script src="{% static 'js/moment.min.js' %}"></script> |
|
|||
67 | <script src="{% static 'js/bootstrap-datetimepicker.min.js' %}"></script> |
|
|||
68 | <script type="text/javascript"> |
|
65 | <script type="text/javascript"> | |
69 |
|
66 | |||
70 | $(".clickable-row").click(function() { |
|
67 | $(".clickable-row").click(function() { |
@@ -26,8 +26,6 | |||||
26 | {% endblock %} |
|
26 | {% endblock %} | |
27 |
|
27 | |||
28 | {% block extra-js%} |
|
28 | {% block extra-js%} | |
29 |
|
||||
30 | <script src="{% static 'js/moment.min.js' %}"></script> |
|
|||
31 | <script src="{% static 'js/bootstrap-datetimepicker.min.js' %}"></script> |
|
29 | <script src="{% static 'js/bootstrap-datetimepicker.min.js' %}"></script> | |
32 | <script type="text/javascript"> |
|
30 | <script type="text/javascript"> | |
33 | $('.input-group.date').datetimepicker({"format": "YYYY-MM-DD HH:mm"}); |
|
31 | $('.input-group.date').datetimepicker({"format": "YYYY-MM-DD HH:mm"}); |
@@ -36,12 +36,8 | |||||
36 | {% endblock %} |
|
36 | {% endblock %} | |
37 |
|
37 | |||
38 | {% block extra-js%} |
|
38 | {% block extra-js%} | |
39 |
|
||||
40 | <script src="{% static 'js/moment.min.js' %}"></script> |
|
|||
41 | <script src="{% static 'js/bootstrap-datetimepicker.min.js' %}"></script> |
|
|||
42 | <script type="text/javascript"> |
|
39 | <script type="text/javascript"> | |
43 | $('.input-group.date').datetimepicker({"format": "YYYY-MM-DD HH:mm"}); |
|
40 | ||
44 |
|
||||
45 | $(".clickable-row").click(function() { |
|
41 | $(".clickable-row").click(function() { | |
46 | document.location = $(this).data("href"); |
|
42 | document.location = $(this).data("href"); | |
47 | }); |
|
43 | }); |
@@ -1,25 +1,27 | |||||
1 | from django.conf.urls import url |
|
1 | from django.conf.urls import url | |
2 |
|
2 | |||
3 | urlpatterns = ( |
|
3 | urlpatterns = ( | |
4 |
|
||||
5 | url(r'^device/add/$', 'apps.main.views.add_device', name='url_add_device'), |
|
4 | url(r'^device/add/$', 'apps.main.views.add_device', name='url_add_device'), | |
6 | url(r'^device/$', 'apps.main.views.devices', name='url_devices'), |
|
5 | url(r'^device/$', 'apps.main.views.devices', name='url_devices'), | |
7 | url(r'^device/(?P<id_dev>-?\d+)/$', 'apps.main.views.device', name='url_device'), |
|
6 | url(r'^device/(?P<id_dev>-?\d+)/$', 'apps.main.views.device', name='url_device'), | |
8 | url(r'^device/(?P<id_dev>-?\d+)/edit/$', 'apps.main.views.edit_device', name='url_edit_device'), |
|
7 | url(r'^device/(?P<id_dev>-?\d+)/edit/$', 'apps.main.views.edit_device', name='url_edit_device'), | |
|
8 | url(r'^device/(?P<id_dev>-?\d+)/delete/$', 'apps.main.views.delete_device', name='url_delete_device'), | |||
9 |
|
9 | |||
10 | url(r'^campaign/add/$', 'apps.main.views.add_campaign', name='url_add_campaign'), |
|
10 | url(r'^campaign/add/$', 'apps.main.views.add_campaign', name='url_add_campaign'), | |
11 | url(r'^campaign/$', 'apps.main.views.campaigns', name='url_campaigns'), |
|
11 | url(r'^campaign/$', 'apps.main.views.campaigns', name='url_campaigns'), | |
12 | url(r'^campaign/(?P<id_camp>-?\d+)/$', 'apps.main.views.campaign', name='url_campaign'), |
|
12 | url(r'^campaign/(?P<id_camp>-?\d+)/$', 'apps.main.views.campaign', name='url_campaign'), | |
13 | url(r'^campaign/(?P<id_camp>-?\d+)/edit/$', 'apps.main.views.edit_campaign', name='url_edit_campaign'), |
|
13 | url(r'^campaign/(?P<id_camp>-?\d+)/edit/$', 'apps.main.views.edit_campaign', name='url_edit_campaign'), | |
|
14 | url(r'^campaign/(?P<id_camp>-?\d+)/delete/$', 'apps.main.views.delete_campaign', name='url_delete_campaign'), | |||
14 |
|
15 | |||
15 | url(r'^campaign/(?P<id_camp>-?\d+)/add_experiment/$', 'apps.main.views.add_experiment', name='url_add_experiment'), |
|
16 | url(r'^campaign/(?P<id_camp>-?\d+)/add_experiment/$', 'apps.main.views.add_experiment', name='url_add_experiment'), | |
16 | url(r'^experiment/$', 'apps.main.views.experiments', name='url_experiments'), |
|
17 | url(r'^experiment/$', 'apps.main.views.experiments', name='url_experiments'), | |
17 | url(r'^experiment/(?P<id_exp>-?\d+)/$', 'apps.main.views.experiment', name='url_experiment'), |
|
18 | url(r'^experiment/(?P<id_exp>-?\d+)/$', 'apps.main.views.experiment', name='url_experiment'), | |
18 | url(r'^experiment/(?P<id_exp>-?\d+)/edit/$', 'apps.main.views.edit_experiment', name='url_edit_experiment'), |
|
19 | url(r'^experiment/(?P<id_exp>-?\d+)/edit/$', 'apps.main.views.edit_experiment', name='url_edit_experiment'), | |
19 |
|
20 | url(r'^experiment/(?P<id_exp>-?\d+)/delete/$', 'apps.main.views.delete_experiment', name='url_delete_experiment'), | ||
|
21 | ||||
20 | url(r'^experiment/(?P<id_exp>-?\d+)/add_dev_conf/$', 'apps.main.views.add_dev_conf', name='url_add_dev_conf'), |
|
22 | url(r'^experiment/(?P<id_exp>-?\d+)/add_dev_conf/$', 'apps.main.views.add_dev_conf', name='url_add_dev_conf'), | |
21 | url(r'^dev_conf/$', 'apps.main.views.dev_confs', name='url_dev_confs'), |
|
23 | url(r'^dev_conf/$', 'apps.main.views.dev_confs', name='url_dev_confs'), | |
22 | url(r'^dev_conf/(?P<id_conf>-?\d+)/$', 'apps.main.views.dev_conf', name='url_dev_conf'), |
|
24 | url(r'^dev_conf/(?P<id_conf>-?\d+)/$', 'apps.main.views.dev_conf', name='url_dev_conf'), | |
23 | url(r'^dev_conf/(?P<id_conf>-?\d+)/edit/$', 'apps.main.views.edit_dev_conf', name='url_edit_dev_conf'), |
|
25 | url(r'^dev_conf/(?P<id_conf>-?\d+)/edit/$', 'apps.main.views.edit_dev_conf', name='url_edit_dev_conf'), | |
24 |
|
26 | url(r'^dev_conf/(?P<id_conf>-?\d+)/delete/$', 'apps.main.views.delete_dev_conf', name='url_delete_dev_conf'), | ||
25 | ) |
|
27 | ) |
@@ -1,4 +1,4 | |||||
1 | from django.shortcuts import render, redirect |
|
1 | from django.shortcuts import render, redirect, HttpResponse | |
2 |
|
2 | |||
3 | from .forms import CampaignForm, ExperimentForm, DeviceForm, ConfigurationForm |
|
3 | from .forms import CampaignForm, ExperimentForm, DeviceForm, ConfigurationForm | |
4 | from apps.cgs.forms import CGSConfigurationForm |
|
4 | from apps.cgs.forms import CGSConfigurationForm | |
@@ -60,8 +60,6 def device(request, id_dev): | |||||
60 |
|
60 | |||
61 | device = Device.objects.get(pk=id_dev) |
|
61 | device = Device.objects.get(pk=id_dev) | |
62 |
|
62 | |||
63 | # form = DeviceForm(instance=device) |
|
|||
64 |
|
||||
65 | kwargs = {} |
|
63 | kwargs = {} | |
66 | kwargs['device'] = device |
|
64 | kwargs['device'] = device | |
67 | kwargs['device_keys'] = ['device_type', 'name', 'ip_address', 'port_address', 'description'] |
|
65 | kwargs['device_keys'] = ['device_type', 'name', 'ip_address', 'port_address', 'description'] | |
@@ -69,7 +67,6 def device(request, id_dev): | |||||
69 | kwargs['title'] = 'Device' |
|
67 | kwargs['title'] = 'Device' | |
70 | kwargs['suptitle'] = 'Details' |
|
68 | kwargs['suptitle'] = 'Details' | |
71 |
|
69 | |||
72 | # kwargs['form'] = form |
|
|||
73 | kwargs['button'] = 'Add Device' |
|
70 | kwargs['button'] = 'Add Device' | |
74 |
|
71 | |||
75 | return render(request, 'device.html', kwargs) |
|
72 | return render(request, 'device.html', kwargs) | |
@@ -116,6 +113,23 def edit_device(request, id_dev): | |||||
116 |
|
113 | |||
117 | return render(request, 'device_edit.html', kwargs) |
|
114 | return render(request, 'device_edit.html', kwargs) | |
118 |
|
115 | |||
|
116 | def delete_device(request, id_dev): | |||
|
117 | ||||
|
118 | device = Device.objects.get(pk=id_dev) | |||
|
119 | ||||
|
120 | if request.method=='POST': | |||
|
121 | ||||
|
122 | if request.user.is_staff: | |||
|
123 | device.delete() | |||
|
124 | return redirect('url_devices') | |||
|
125 | ||||
|
126 | return HttpResponse("Not enough permission to delete this object") | |||
|
127 | ||||
|
128 | kwargs = {'object':device, 'dev_active':'active', | |||
|
129 | 'url_cancel':'url_device', 'id_item':id_dev} | |||
|
130 | ||||
|
131 | return render(request, 'item_delete.html', kwargs) | |||
|
132 | ||||
119 | def campaigns(request): |
|
133 | def campaigns(request): | |
120 |
|
134 | |||
121 | campaigns = Campaign.objects.all().order_by('start_date') |
|
135 | campaigns = Campaign.objects.all().order_by('start_date') | |
@@ -197,6 +211,22 def edit_campaign(request, id_camp): | |||||
197 |
|
211 | |||
198 | return render(request, 'campaign_edit.html', kwargs) |
|
212 | return render(request, 'campaign_edit.html', kwargs) | |
199 |
|
213 | |||
|
214 | def delete_campaign(request, id_camp): | |||
|
215 | ||||
|
216 | campaign = Campaign.objects.get(pk=id_camp) | |||
|
217 | ||||
|
218 | if request.method=='POST': | |||
|
219 | if request.user.is_staff: | |||
|
220 | campaign.delete() | |||
|
221 | return redirect('url_campaigns') | |||
|
222 | ||||
|
223 | return HttpResponse("Not enough permission to delete this object") | |||
|
224 | ||||
|
225 | kwargs = {'object':campaign, 'camp_active':'active', | |||
|
226 | 'url_cancel':'url_campaign', 'id_item':id_camp} | |||
|
227 | ||||
|
228 | return render(request, 'item_delete.html', kwargs) | |||
|
229 | ||||
200 | def experiments(request): |
|
230 | def experiments(request): | |
201 |
|
231 | |||
202 | campaigns = Experiment.objects.all().order_by('start_time') |
|
232 | campaigns = Experiment.objects.all().order_by('start_time') | |
@@ -238,7 +268,6 def experiment(request, id_exp): | |||||
238 | kwargs['title'] = 'Experiment' |
|
268 | kwargs['title'] = 'Experiment' | |
239 | kwargs['suptitle'] = 'Details' |
|
269 | kwargs['suptitle'] = 'Details' | |
240 |
|
270 | |||
241 | # kwargs['form'] = form |
|
|||
242 | kwargs['button'] = 'Add Device' |
|
271 | kwargs['button'] = 'Add Device' | |
243 |
|
272 | |||
244 | return render(request, 'experiment.html', kwargs) |
|
273 | return render(request, 'experiment.html', kwargs) | |
@@ -285,6 +314,23 def edit_experiment(request, id_exp): | |||||
285 |
|
314 | |||
286 | return render(request, 'experiment_edit.html', kwargs) |
|
315 | return render(request, 'experiment_edit.html', kwargs) | |
287 |
|
316 | |||
|
317 | def delete_experiment(request, id_exp): | |||
|
318 | ||||
|
319 | experiment = Experiment.objects.get(pk=id_exp) | |||
|
320 | ||||
|
321 | if request.method=='POST': | |||
|
322 | if request.user.is_staff: | |||
|
323 | id_camp = experiment.campaign.id | |||
|
324 | experiment.delete() | |||
|
325 | return redirect('url_campaign', id_camp=id_camp) | |||
|
326 | ||||
|
327 | return HttpResponse("Not enough permission to delete this object") | |||
|
328 | ||||
|
329 | kwargs = {'object':experiment, 'exp_active':'active', | |||
|
330 | 'url_cancel':'url_experiment', 'id_item':id_exp} | |||
|
331 | ||||
|
332 | return render(request, 'item_delete.html', kwargs) | |||
|
333 | ||||
288 | def dev_confs(request): |
|
334 | def dev_confs(request): | |
289 |
|
335 | |||
290 | configurations = Configuration.objects.all().order_by('device__device_type') |
|
336 | configurations = Configuration.objects.all().order_by('device__device_type') | |
@@ -390,6 +436,22 def edit_dev_conf(request, id_conf): | |||||
390 |
|
436 | |||
391 | return render(request, 'dev_conf_edit.html', kwargs) |
|
437 | return render(request, 'dev_conf_edit.html', kwargs) | |
392 |
|
438 | |||
|
439 | def delete_dev_conf(request, id_conf): | |||
|
440 | ||||
|
441 | conf = Configuration.objects.get(pk=id_conf) | |||
|
442 | ||||
|
443 | if request.method=='POST': | |||
|
444 | if request.user.is_staff: | |||
|
445 | id_exp = conf.experiment.id | |||
|
446 | conf.delete() | |||
|
447 | return redirect('url_experiment', id_exp=id_exp) | |||
|
448 | ||||
|
449 | return HttpResponse("Not enough permission to delete this object") | |||
|
450 | ||||
|
451 | kwargs = {'object':conf, 'conf_active':'active', | |||
|
452 | 'url_cancel':'url_dev_conf', 'id_item':id_conf} | |||
|
453 | ||||
|
454 | return render(request, 'item_delete.html', kwargs) | |||
393 |
|
455 | |||
394 | # def experiment(request, id_exp=0, id_dev_type=0): |
|
456 | # def experiment(request, id_exp=0, id_dev_type=0): | |
395 | # kwargs = {} |
|
457 | # kwargs = {} |
General Comments 0
You need to be logged in to leave comments.
Login now