##// END OF EJS Templates
Task #94: edit, save, read function...
Fiorella Quino -
r31:785224f27bcc
parent child
Show More
@@ -20,6 +20,10 class CGSConfiguration(Configuration):
20 #clk_in = models.PositiveIntegerField(default=10e6)
20 #clk_in = models.PositiveIntegerField(default=10e6)
21 #mult = models.PositiveIntegerField(default=40)
21 #mult = models.PositiveIntegerField(default=40)
22 #div = models.PositiveIntegerField(default=1)
22 #div = models.PositiveIntegerField(default=1)
23
24 def verify_frequencies(self):
25
26 return True
23
27
24
28
25 class Meta:
29 class Meta:
@@ -1,11 +1,1
1 {% extends "dev_conf.html" %}
1 {% extends "dev_conf.html" %} No newline at end of file
2
3 {% block extra-js%}
4 <script type="text/javascript">
5
6 $("#bt_edit").click(function() {
7 document.location = "{% url 'url_edit_cgs_conf' dev_conf.id 1%}";
8 });
9
10 </script>
11 {% endblock %} No newline at end of file
@@ -1,1 +1,83
1 {% extends "dev_conf_edit.html" %} No newline at end of file
1 {% extends "dev_conf_edit.html" %}
2 {% load bootstrap3 %}
3 {% load static %}
4 {% load main_tags %}
5
6 {% block extra-js%}
7 <script src="{% static 'js/dds_conversion.js' %}"></script>
8 <script type="text/javascript">
9
10 $("#bt_cancel").click(function() {
11 document.location = "{% url 'url_dds_conf' id_dev%}";
12 });
13
14 $("#bt_read").click(function() {
15 document.location = "{% url 'url_read_dds_conf' id_dev%}";
16 });
17
18 $("#id_clock").on('change', function() {
19 updateFrequencies();
20 });
21
22 $("#id_multiplier").on('change', function() {
23 updateFrequencies();
24 });
25
26 $("#id_frequency").on('change', function() {
27 updateBinaryFrequencies();
28 });
29
30 $("#id_frequency_bin").on('change', function() {
31 updateFrequencies();
32 });
33
34 $("#id_frequency_mod").on('change', function() {
35 updateBinaryFrequencies();
36 });
37
38 $("#id_frequency_mod_bin").on('change', function() {
39 updateFrequencies();
40 });
41
42 function updateBinaryFrequencies() {
43
44 var clock = $("#id_clock").val();
45 var multiplier = $("#id_multiplier").val();
46 var freq = $("#id_frequency").val();
47 var freq_mod = $("#id_frequency_mod").val();
48
49 var mclock = clock*multiplier;
50
51 var freq_bin = freq2Binary(mclock, freq);
52 var freq_mod_bin = freq2Binary(mclock, freq_mod);
53
54 $("#id_frequency_bin").val(freq_bin);
55 $("#id_frequency_mod_bin").val(freq_mod_bin);
56
57 freq = binary2Freq(mclock, freq_bin);
58 freq_mod = binary2Freq(mclock, freq_mod_bin);
59
60 $("#id_frequency").val(freq);
61 $("#id_frequency_mod").val(freq_mod);
62
63 }
64
65 function updateFrequencies() {
66
67 var clock = $("#id_clock").val();
68 var multiplier = $("#id_multiplier").val();
69 var freq_bin = $("#id_frequency_bin").val();
70 var freq_mod_bin = $("#id_frequency_mod_bin").val();
71
72 var mclock = clock*multiplier;
73
74 var freq = binary2Freq(mclock, freq_bin);
75 var freq_mod = binary2Freq(mclock, freq_mod_bin);
76
77 $("#id_frequency").val(freq);
78 $("#id_frequency_mod").val(freq_mod);
79
80 }
81
82 </script>
83 {% endblock %} No newline at end of file
@@ -1,12 +1,14
1 from django.conf.urls import url
1 from django.conf.urls import url
2
2
3 urlpatterns = (
3 urlpatterns = (
4 #url(r'^configuration/$', 'apps.cgs.views.configurate_frequencies', name='new_device'),
4 url(r'^(?P<id_conf>-?\d+)/$', 'apps.cgs.views.cgs_conf', name='url_cgs_conf'),
5 # url(r'^(?P<id>-?\d+)/$', 'apps.cgs.views.configurate_frequencies', name='new_device'),
5 url(r'^(?P<id_conf>-?\d+)/edit/$', 'apps.cgs.views.cgs_conf_edit', name='url_edit_cgs_conf'),
6 url(r'^(?P<id_conf>-?\d+)/$', 'apps.main.views.dev_conf', name='url_cgs_conf'),
6 #url(r'^(?P<id_conf>-?\d+)/(?P<message>-?\d+)/$', 'apps.cgs.views.cgs_conf', name='url_cgs_conf'),
7 url(r'^(?P<id_conf>-?\d+)/edit/$', 'apps.main.views.dev_conf_edit', name='url_edit_cgs_conf'),
7 url(r'^(?P<id_conf>-?\d+)/edit/$', 'apps.cgs.views.cgs_conf_edit', name='url_edit_cgs_conf'),
8 url(r'^(?P<id_conf>-?\d+)/write/$', 'apps.main.views.dev_conf_write', name='url_write_cgs_conf'),
8 url(r'^(?P<id_conf>-?\d+)/write/$', 'apps.cgs.views.cgs_conf_write', name='url_write_cgs_conf'),
9 url(r'^(?P<id_conf>-?\d+)/read/$', 'apps.main.views.dev_conf_read', name='url_read_cgs_conf'),
9 url(r'^(?P<id_conf>-?\d+)/read/$', 'apps.cgs.views.cgs_conf_read', name='url_read_cgs_conf'),
10 #url(r'^(?P<id_conf>-?\d+)/write/$', 'apps.main.views.dev_conf_write', name='url_write_cgs_conf'),
11 #url(r'^(?P<id_conf>-?\d+)/read/$', 'apps.main.views.dev_conf_read', name='url_read_cgs_conf'),
10 url(r'^(?P<id_conf>-?\d+)/import/$', 'apps.main.views.dev_conf_import', name='url_import_cgs_conf'),
12 url(r'^(?P<id_conf>-?\d+)/import/$', 'apps.main.views.dev_conf_import', name='url_import_cgs_conf'),
11 url(r'^(?P<id_conf>-?\d+)/export/$', 'apps.main.views.dev_conf_export', name='url_export_cgs_conf'),
13 url(r'^(?P<id_conf>-?\d+)/export/$', 'apps.main.views.dev_conf_export', name='url_export_cgs_conf'),
12 )
14 )
@@ -1,14 +1,22
1 from django.shortcuts import redirect, render, get_object_or_404
1 from django.shortcuts import redirect, render, get_object_or_404
2 from django.contrib import messages
2
3
3 from apps.main.models import Experiment, Configuration
4 from apps.main.models import Experiment, Configuration
4 from .models import CGSConfiguration
5 from .models import CGSConfiguration
6
5 from .forms import CGSConfigurationForm
7 from .forms import CGSConfigurationForm
8 from apps.main.views import sidebar
9
10 import requests
6 # Create your views here.
11 # Create your views here.
7
12
8 def cgs_conf(request, id_conf):
13 def cgs_conf(request, id_conf):
9
14
10 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
15 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
11
16
17 ip=conf.device.ip_address
18 port=conf.device.port_address
19
12 kwargs = {}
20 kwargs = {}
13 kwargs['dev_conf'] = conf
21 kwargs['dev_conf'] = conf
14 kwargs['dev_conf_keys'] = ['experiment', 'device',
22 kwargs['dev_conf_keys'] = ['experiment', 'device',
@@ -21,17 +29,7 def cgs_conf(request, id_conf):
21 kwargs['button'] = 'Edit Configuration'
29 kwargs['button'] = 'Edit Configuration'
22
30
23 ###### SIDEBAR ######
31 ###### SIDEBAR ######
24 experiments = Experiment.objects.filter(campaign=conf.experiment.campaign)
32 kwargs.update(sidebar(conf))
25 configurations = Configuration.objects.filter(experiment=conf.experiment)
26
27 exp_keys = ['id', 'campaign', 'name', 'start_time', 'end_time']
28 conf_keys = ['id', 'device__name', 'device__device_type__name', 'device__ip_address']
29
30 kwargs['experiment_keys'] = exp_keys[1:]
31 kwargs['experiments'] = experiments.values(*exp_keys)
32
33 kwargs['configuration_keys'] = conf_keys[1:]
34 kwargs['configurations'] = configurations.values(*conf_keys)
35
33
36 return render(request, 'cgs_conf.html', kwargs)
34 return render(request, 'cgs_conf.html', kwargs)
37
35
@@ -46,13 +44,117 def cgs_conf_edit(request, id_conf):
46 form = CGSConfigurationForm(request.POST, instance=conf)
44 form = CGSConfigurationForm(request.POST, instance=conf)
47
45
48 if form.is_valid():
46 if form.is_valid():
49 form.save()
47 conf = form.save(commit=False)
50 return redirect('url_cgs_conf', id_conf=id_conf)
48
49 if conf.verify_frequencies():
50
51 conf.save()
52 return redirect('url_cgs_conf', id_conf=conf.id)
53
54 ##ERRORS
51
55
52 kwargs = {}
56 kwargs = {}
57 kwargs['id_dev'] = conf.id
53 kwargs['form'] = form
58 kwargs['form'] = form
54 kwargs['title'] = 'Device Configuration'
59 kwargs['title'] = 'Device Configuration'
55 kwargs['suptitle'] = 'Edit'
60 kwargs['suptitle'] = 'Edit'
56 kwargs['button'] = 'Update'
61 kwargs['button'] = 'Save'
62
63 ###### SIDEBAR ######
64 kwargs.update(sidebar(conf))
65
66 return render(request, 'cgs_conf_edit.html', kwargs)
67
68 def cgs_conf_write(request, id_conf):
69
70 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
71 ip=conf.device.ip_address
72 port=conf.device.port_address
73
74 #Frequencies from form
75 f0 = conf.freq0
76 f1 = conf.freq1
77 f2 = conf.freq2
78 f3 = conf.freq3
79
80 post_data = {"f0":f0, "f1":f1, "f2":f2, "f3":f3}
81 route = "http://" + str(ip) + ":" + str(port) + "/frequencies/"
82 r = requests.post(route, post_data)
83 print r.url
84 print r.text
85
86
87
88
89 return redirect('url_cgs_conf', id_conf=conf.id)
90
91 def cgs_conf_read(request, id_conf):
92
93 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
94 ip=conf.device.ip_address
95 port=conf.device.port_address
96
97 if request.method=='POST':
98 form = CGSConfigurationForm(request.POST, instance=conf)
99
100 if form.is_valid():
101 cgs_model = form.save(commit=False)
102
103 if cgs_model.verify_frequencies():
104
105 cgs_model.save()
106 return redirect('url_cgs_conf', id_conf=conf.id)
107
108 messages.error(request, "Parameters could not be saved. Invalid parameters")
109
110 data = {}
111
112
113 if request.method=='GET':
114 #r: response = icon, status
115 route = "http://" + str(ip) + ":" + str(port) + "/status/ad9548"
116 r = requests.get(route)
117 response = str(r.text)
118 response = response.split(";")
119 icon = response[0]
120 status = response[-1]
121 #"icon" could be: "alert" or "okay"
122 if "okay" in icon:
123 messages.success(request, status)
124 else:
125 messages.error(request, status)
126 #Get Frequencies
127 frequencies = requests.get('http://10.10.10.175:8080/frequencies/')
128 frequencies = frequencies.json()
129 frequencies = frequencies.get("Frecuencias")
130 f0 = frequencies.get("f0")
131 f1 = frequencies.get("f1")
132 f2 = frequencies.get("f2")
133 f3 = frequencies.get("f3")
134 print f0,f1,f2,f3
135
136 if not response:
137 messages.error(request, "Could not read parameters from Device")
138 return redirect('url_cgs_conf', id_conf=conf.id)
139
140 data = {'experiment' : conf.experiment.id,
141 'device' : conf.device.id,
142 'freq0' : f0,
143 'freq1' : f1,
144 'freq2' : f2,
145 'freq3' : f3,
146 }
147
148 form = CGSConfigurationForm(data)
149
150 kwargs = {}
151 kwargs['id_dev'] = conf.id
152 kwargs['form'] = form
153 kwargs['title'] = 'Device Configuration'
154 kwargs['suptitle'] = 'Parameters read from device'
155 kwargs['button'] = 'Save'
156
157 ###### SIDEBAR ######
158 kwargs.update(sidebar(conf))
57
159
58 return render(request, 'cgs_conf_edit.html', kwargs) No newline at end of file
160 return render(request, 'cgs_conf_edit.html', kwargs)
General Comments 0
You need to be logged in to leave comments. Login now