##// END OF EJS Templates
Task #95: se agrego la funcion "import" para archivos .json ...
Fiorella Quino -
r42:21a9f0375b43
parent child
Show More
@@ -0,0 +1,31
1 '''
2 Created on Feb 15, 2016
3
4 @author: Miguel Urco
5 '''
6
7 import json
8
9 def read_json_file(fp):
10
11 kwargs = {}
12
13 json_data = fp
14 data = json.load(json_data)
15 json_data.close()
16
17 frequency0 = data["Frequencies"][0][1]
18 frequency1 = data["Frequencies"][1][1]
19 frequency2 = data["Frequencies"][2][1]
20 frequency3 = data["Frequencies"][3][1]
21
22 kwargs['freq0'] = frequency0
23 kwargs['freq1'] = frequency1
24 kwargs['freq2'] = frequency2
25 kwargs['freq3'] = frequency3
26
27 return kwargs
28
29
30 def write_json_file(filename):
31 pass No newline at end of file
@@ -1,34 +1,34
1 from django import forms
1 from django import forms
2 from apps.main.models import Device
2 from apps.main.models import Device
3 from .models import CGSConfiguration
3 from .models import CGSConfiguration
4
4
5 class CGSConfigurationForm(forms.ModelForm):
5 class CGSConfigurationForm(forms.ModelForm):
6 #freq0.widget = te
6 #freq0.widget = te
7 def __init__(self, *args, **kwargs):
7 def __init__(self, *args, **kwargs):
8 #request = kwargs.pop('request')
8 #request = kwargs.pop('request')
9 super(CGSConfigurationForm, self).__init__(*args, **kwargs)
9 super(CGSConfigurationForm, self).__init__(*args, **kwargs)
10
10
11 instance = getattr(self, 'instance', None)
11 instance = getattr(self, 'instance', None)
12
12
13 if instance and instance.pk:
13 if instance and instance.pk:
14
14
15 devices = Device.objects.filter(device_type__name='cgs')
15 devices = Device.objects.filter(device_type__name='cgs')
16 items = devices.values('id', 'name', 'device_type__name', 'ip_address')
16 items = devices.values('id', 'name', 'device_type__name', 'ip_address')
17
17
18 self.fields['experiment'].widget.attrs['readonly'] = True
18 self.fields['experiment'].widget.attrs['readonly'] = True
19 self.fields['device'].widget.choices = [(item['id'], '[%s]: %s | %s' % (item['device_type__name'], item['name'], item['ip_address'])) for item in items]
19 self.fields['device'].widget.choices = [(item['id'], '[%s]: %s | %s' % (item['device_type__name'], item['name'], item['ip_address'])) for item in items]
20
20
21 def clean(self):
21 def clean(self):
22 return
22 return
23 # # Custom validation to force an integer when type of unit = "Unit"
23 #
24 # form_data = self.cleaned_data
25 # if (form_data['freq0'] or form_data['freq1'] or form_data['freq2'] or form_data['freq3'] < 0):
26 # raise forms.ValidationError("Please introduce positive Number")
27 #
28 # return form_data
29
24
30 class Meta:
25 class Meta:
31 model = CGSConfiguration
26 model = CGSConfiguration
32 #exclude = ('freqs', 'clk_in', 'mult','div',)
27 #exclude = ('freqs', 'clk_in', 'mult','div',)
33 # exclude = ('freqs',)
28 # exclude = ('freqs',)
34 fields = ('experiment', 'device', 'freq0', 'freq1', 'freq2', 'freq3')
29 fields = ('experiment', 'device', 'freq0', 'freq1', 'freq2', 'freq3')
30
31
32 class UploadFileForm(forms.Form):
33 title = forms.CharField(label='Extension Type', widget=forms.TextInput(attrs={'readonly':'readonly'}))
34 file = forms.FileField() No newline at end of file
@@ -1,30 +1,42
1 from django.db import models
1 from django.db import models
2 from apps.main.models import Configuration
2 from apps.main.models import Configuration
3 #from json_field import JSONField
3 #from json_field import JSONField
4 from django.core.validators import MinValueValidator, MaxValueValidator
4 from django.core.validators import MinValueValidator, MaxValueValidator
5
5
6
6
7 from apps.main.models import Device, Experiment
7 from apps.main.models import Device, Experiment
8
8
9 from files import read_json_file
9 # Create your models here.
10 # Create your models here.
10
11
11 class CGSConfiguration(Configuration):
12 class CGSConfiguration(Configuration):
12
13
13 #device = models.ForeignKey(Device)
14 #exp = models.ForeignKey(Experiment, default = None)
15 freq0 = models.FloatField(verbose_name='Frequency 0',validators=[MinValueValidator(62.5e6), MaxValueValidator(450e6)], blank=True, null=True)
14 freq0 = models.FloatField(verbose_name='Frequency 0',validators=[MinValueValidator(62.5e6), MaxValueValidator(450e6)], blank=True, null=True)
16 freq1 = models.FloatField(verbose_name='Frequency 1',validators=[MinValueValidator(62.5e6), MaxValueValidator(450e6)], blank=True, null=True)
15 freq1 = models.FloatField(verbose_name='Frequency 1',validators=[MinValueValidator(62.5e6), MaxValueValidator(450e6)], blank=True, null=True)
17 freq2 = models.FloatField(verbose_name='Frequency 2',validators=[MinValueValidator(62.5e6), MaxValueValidator(450e6)], blank=True, null=True)
16 freq2 = models.FloatField(verbose_name='Frequency 2',validators=[MinValueValidator(62.5e6), MaxValueValidator(450e6)], blank=True, null=True)
18 freq3 = models.FloatField(verbose_name='Frequency 3',validators=[MinValueValidator(62.5e6), MaxValueValidator(450e6)], blank=True, null=True)
17 freq3 = models.FloatField(verbose_name='Frequency 3',validators=[MinValueValidator(62.5e6), MaxValueValidator(450e6)], blank=True, null=True)
19 #jfreqs = JSONField(default={"frequencies":[{"f0":freq0,"f1":freq1,"f2":freq2,"f3":freq3}]}, blank=True)
18 #jfreqs = JSONField(default={"frequencies":[{"f0":freq0,"f1":freq1,"f2":freq2,"f3":freq3}]}, blank=True)
20 #clk_in = models.PositiveIntegerField(default=10e6)
19
21 #mult = models.PositiveIntegerField(default=40)
22 #div = models.PositiveIntegerField(default=1)
23
20
24 def verify_frequencies(self):
21 def verify_frequencies(self):
25
22
26 return True
23 return True
24
25
26 def update_from_file(self, fp):
27
28 kwargs = read_json_file(fp)
29
30 if not kwargs:
31 return False
32
33 self.freq0 = kwargs['freq0']
34 self.freq1 = kwargs['freq1']
35 self.freq2 = kwargs['freq2']
36 self.freq3 = kwargs['freq3']
37
38 return True
27
39
28
40
29 class Meta:
41 class Meta:
30 db_table = 'cgs_configurations'
42 db_table = 'cgs_configurations'
@@ -1,16 +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'^(?P<id_conf>-?\d+)/$', 'apps.cgs.views.cgs_conf', name='url_cgs_conf'),
4 url(r'^(?P<id_conf>-?\d+)/$', 'apps.cgs.views.cgs_conf', name='url_cgs_conf'),
5 url(r'^(?P<id_conf>-?\d+)/edit/$', 'apps.cgs.views.cgs_conf_edit', name='url_edit_cgs_conf'),
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+)/(?P<message>-?\d+)/$', 'apps.cgs.views.cgs_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.cgs.views.cgs_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.cgs.views.cgs_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.cgs.views.cgs_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'),
10 url(r'^(?P<id_conf>-?\d+)/import/$', 'apps.cgs.views.cgs_conf_import', name='url_import_cgs_conf'),
11 #url(r'^(?P<id_conf>-?\d+)/read/$', 'apps.main.views.dev_conf_read', name='url_read_cgs_conf'),
12 url(r'^(?P<id_conf>-?\d+)/import/$', 'apps.main.views.dev_conf_import', name='url_import_cgs_conf'),
13 url(r'^(?P<id_conf>-?\d+)/export/$', 'apps.cgs.views.cgs_conf_export', name='url_export_cgs_conf'),
11 url(r'^(?P<id_conf>-?\d+)/export/$', 'apps.cgs.views.cgs_conf_export', name='url_export_cgs_conf'),
14 #url(r'^(?P<id_conf>-?\d+)/export/$', 'apps.main.views.dev_conf_export', name='url_export_cgs_conf'),
12 #url(r'^(?P<id_conf>-?\d+)/export/$', 'apps.main.views.dev_conf_export', name='url_export_cgs_conf'),
15 )
13 )
16
14
@@ -1,258 +1,310
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 from django.contrib import messages
3
3
4 from apps.main.models import Experiment, Configuration
4 from apps.main.models import Experiment, Configuration
5 from .models import CGSConfiguration
5 from .models import CGSConfiguration
6
6
7 from .forms import CGSConfigurationForm
7 from .forms import CGSConfigurationForm, UploadFileForm
8 from apps.main.views import sidebar
8 from apps.main.views import sidebar
9
9
10 import requests
10 import requests
11 import json
11 import json
12 #from __builtin__ import None
12 #from __builtin__ import None
13 # Create your views here.
13 # Create your views here.
14
14
15 def cgs_conf(request, id_conf):
15 def cgs_conf(request, id_conf):
16
16
17 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
17 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
18
18
19 ip=conf.device.ip_address
19 ip=conf.device.ip_address
20 port=conf.device.port_address
20 port=conf.device.port_address
21
21
22 kwargs = {}
22 kwargs = {}
23
23
24 if request.method=='GET':
24 if request.method=='GET':
25 #r: response = icon, status
25 #r: response = icon, status
26 try:
26 try:
27 route = "http://" + str(ip) + ":" + str(port) + "/status/ad9548"
27 route = "http://" + str(ip) + ":" + str(port) + "/status/ad9548"
28 r = requests.get(route)
28 r = requests.get(route)
29 response = str(r.text)
29 response = str(r.text)
30 response = response.split(";")
30 response = response.split(";")
31 icon = response[0]
31 icon = response[0]
32 status = response[-1]
32 status = response[-1]
33 #print r.text
33 #print r.text
34 #"icon" could be: "alert" or "okay"
34 #"icon" could be: "alert" or "okay"
35 # Si hay alerta pero esta conectado
35 # Si hay alerta pero esta conectado
36 if "alert" in icon:
36 if "alert" in icon:
37 if "Starting Up" in status: #No Esta conectado
37 if "Starting Up" in status: #No Esta conectado
38 kwargs['connected'] = False
38 kwargs['connected'] = False
39 else:
39 else:
40 kwargs['connected'] = True
40 kwargs['connected'] = True
41 elif "okay" in icon:
41 elif "okay" in icon:
42 kwargs['connected'] = True
42 kwargs['connected'] = True
43 else:
43 else:
44 kwargs['connected'] = False
44 kwargs['connected'] = False
45
45
46 except:
46 except:
47 kwargs['connected'] = False
47 kwargs['connected'] = False
48 status = "The Device is not connected."
48 status = "The Device is not connected."
49
49
50 if not kwargs['connected']:
50 if not kwargs['connected']:
51 messages.error(request, message=status)
51 messages.error(request, message=status)
52
52
53 kwargs['dev_conf'] = conf
53 kwargs['dev_conf'] = conf
54 kwargs['dev_conf_keys'] = ['experiment', 'device',
54 kwargs['dev_conf_keys'] = ['experiment', 'device',
55 'freq0', 'freq1',
55 'freq0', 'freq1',
56 'freq2', 'freq3']
56 'freq2', 'freq3']
57
57
58 kwargs['title'] = 'CGS Configuration'
58 kwargs['title'] = 'CGS Configuration'
59 kwargs['suptitle'] = 'Details'
59 kwargs['suptitle'] = 'Details'
60
60
61 kwargs['button'] = 'Edit Configuration'
61 kwargs['button'] = 'Edit Configuration'
62
62
63 ###### SIDEBAR ######
63 ###### SIDEBAR ######
64 kwargs.update(sidebar(conf))
64 kwargs.update(sidebar(conf))
65
65
66 return render(request, 'cgs_conf.html', kwargs)
66 return render(request, 'cgs_conf.html', kwargs)
67
67
68 def cgs_conf_edit(request, id_conf):
68 def cgs_conf_edit(request, id_conf):
69
69
70 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
70 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
71
71
72 if request.method=='GET':
72 if request.method=='GET':
73 form = CGSConfigurationForm(instance=conf)
73 form = CGSConfigurationForm(instance=conf)
74
74
75 if request.method=='POST':
75 if request.method=='POST':
76 form = CGSConfigurationForm(request.POST, instance=conf)
76 form = CGSConfigurationForm(request.POST, instance=conf)
77
77
78 if form.is_valid():
78 if form.is_valid():
79 conf = form.save(commit=False)
79 conf = form.save(commit=False)
80
80
81 if conf.verify_frequencies():
81 if conf.verify_frequencies():
82
82
83 if conf.freq0 == None: conf.freq0 = 0
83 if conf.freq0 == None: conf.freq0 = 0
84 if conf.freq1 == None: conf.freq0 = 0
84 if conf.freq1 == None: conf.freq0 = 0
85 if conf.freq2 == None: conf.freq0 = 0
85 if conf.freq2 == None: conf.freq0 = 0
86 if conf.freq3 == None: conf.freq0 = 0
86 if conf.freq3 == None: conf.freq0 = 0
87
87
88
88
89 data = {'f0': str(conf.freq0), 'f1': str(conf.freq1),
89 data = {'f0': str(conf.freq0), 'f1': str(conf.freq1),
90 'f2': str(conf.freq2), 'f3': str(conf.freq3)}
90 'f2': str(conf.freq2), 'f3': str(conf.freq3)}
91 json_data = json.dumps(data)
91 json_data = json.dumps(data)
92 conf.parameters = json_data
92 conf.parameters = json_data
93
93
94 conf.save()
94 conf.save()
95 return redirect('url_cgs_conf', id_conf=conf.id)
95 return redirect('url_cgs_conf', id_conf=conf.id)
96
96
97 ##ERRORS
97 ##ERRORS
98
98
99 kwargs = {}
99 kwargs = {}
100 kwargs['id_dev'] = conf.id
100 kwargs['id_dev'] = conf.id
101 kwargs['form'] = form
101 kwargs['form'] = form
102 kwargs['title'] = 'Device Configuration'
102 kwargs['title'] = 'Device Configuration'
103 kwargs['suptitle'] = 'Edit'
103 kwargs['suptitle'] = 'Edit'
104 kwargs['button'] = 'Save'
104 kwargs['button'] = 'Save'
105
105
106
106
107 ###### SIDEBAR ######
107 ###### SIDEBAR ######
108 kwargs.update(sidebar(conf))
108 kwargs.update(sidebar(conf))
109
109
110 return render(request, 'cgs_conf_edit.html', kwargs)
110 return render(request, 'cgs_conf_edit.html', kwargs)
111
111
112 def cgs_conf_write(request, id_conf):
112 def cgs_conf_write(request, id_conf):
113
113
114 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
114 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
115 ip=conf.device.ip_address
115 ip=conf.device.ip_address
116 port=conf.device.port_address
116 port=conf.device.port_address
117
117
118 #Frequencies from form
118 #Frequencies from form
119 if conf.freq0 == None: conf.freq0 = 0
119 if conf.freq0 == None: conf.freq0 = 0
120 if conf.freq1 == None: conf.freq0 = 0
120 if conf.freq1 == None: conf.freq0 = 0
121 if conf.freq2 == None: conf.freq0 = 0
121 if conf.freq2 == None: conf.freq0 = 0
122 if conf.freq3 == None: conf.freq0 = 0
122 if conf.freq3 == None: conf.freq0 = 0
123 f0 = int(conf.freq0)
123 f0 = int(conf.freq0)
124 f1 = int(conf.freq1)
124 f1 = int(conf.freq1)
125 f2 = int(conf.freq2)
125 f2 = int(conf.freq2)
126 f3 = int(conf.freq3)
126 f3 = int(conf.freq3)
127
127
128 try:
128 try:
129 post_data = {"f0":f0, "f1":f1, "f2":f2, "f3":f3}
129 post_data = {"f0":f0, "f1":f1, "f2":f2, "f3":f3}
130 route = "http://" + str(ip) + ":" + str(port) + "/frequencies/"
130 route = "http://" + str(ip) + ":" + str(port) + "/frequencies/"
131 r = requests.post(route, post_data)
131 r = requests.post(route, post_data)
132 text = r.text
132 text = r.text
133 text = text.split(',')
133 text = text.split(',')
134
134
135 try:
135 try:
136 if len(text)>1:
136 if len(text)>1:
137 title = text[0]
137 title = text[0]
138 status = text[1]
138 status = text[1]
139 status_ok = r.status_code
139 status_ok = r.status_code
140 if title == "okay":
140 if title == "okay":
141 messages.success(request, status)
141 messages.success(request, status)
142 else:
142 else:
143 messages.error(request, status)
143 messages.error(request, status)
144
144
145 else:
145 else:
146 title = text[0]
146 title = text[0]
147 messages.error(request, title)
147 messages.error(request, title)
148
148
149 except:
149 except:
150 messages.error(request, "An hardware error was found.")
150 messages.error(request, "An hardware error was found.")
151
151
152 except:
152 except:
153 messages.error(request, "Could not write parameters.")
153 messages.error(request, "Could not write parameters.")
154
154
155
155
156
156
157
157
158 return redirect('url_cgs_conf', id_conf=conf.id)
158 return redirect('url_cgs_conf', id_conf=conf.id)
159
159
160 def cgs_conf_read(request, id_conf):
160 def cgs_conf_read(request, id_conf):
161
161
162 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
162 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
163
163
164 ip=conf.device.ip_address
164 ip=conf.device.ip_address
165 port=conf.device.port_address
165 port=conf.device.port_address
166
166
167 if request.method=='POST':
167 if request.method=='POST':
168 form = CGSConfigurationForm(request.POST, instance=conf)
168 form = CGSConfigurationForm(request.POST, instance=conf)
169
169
170 if form.is_valid():
170 if form.is_valid():
171 cgs_model = form.save(commit=False)
171 cgs_model = form.save(commit=False)
172
172
173 if cgs_model.verify_frequencies():
173 if cgs_model.verify_frequencies():
174
174
175 cgs_model.save()
175 cgs_model.save()
176 return redirect('url_cgs_conf', id_conf=conf.id)
176 return redirect('url_cgs_conf', id_conf=conf.id)
177
177
178 messages.error(request, "Parameters could not be saved. Invalid parameters")
178 messages.error(request, "Parameters could not be saved. Invalid parameters")
179
179
180 data = {}
180 data = {}
181
181
182
182
183 if request.method=='GET':
183 if request.method=='GET':
184 #r: response = icon, status
184 #r: response = icon, status
185 route = "http://" + str(ip) + ":" + str(port) + "/status/ad9548"
185 route = "http://" + str(ip) + ":" + str(port) + "/status/ad9548"
186 try:
186 try:
187 r = requests.get(route)
187 r = requests.get(route)
188 response = str(r.text)
188 response = str(r.text)
189 response = response.split(";")
189 response = response.split(";")
190 icon = response[0]
190 icon = response[0]
191 status = response[-1]
191 status = response[-1]
192 print r.text
192 print r.text
193 #"icon" could be: "alert" or "okay"
193 #"icon" could be: "alert" or "okay"
194 if "okay" in icon:
194 if "okay" in icon:
195 messages.success(request, status)
195 messages.success(request, status)
196 else:
196 else:
197 messages.error(request, status)
197 messages.error(request, status)
198 #Get Frequencies
198 #Get Frequencies
199 route = "http://" + str(ip) + ":" + str(port) + "/frequencies/"
199 route = "http://" + str(ip) + ":" + str(port) + "/frequencies/"
200 #frequencies = requests.get('http://10.10.10.175:8080/frequencies/')
200 #frequencies = requests.get('http://10.10.10.175:8080/frequencies/')
201 frequencies = requests.get(route)
201 frequencies = requests.get(route)
202 frequencies = frequencies.json()
202 frequencies = frequencies.json()
203 frequencies = frequencies.get("Frecuencias")
203 frequencies = frequencies.get("Frecuencias")
204 f0 = frequencies.get("f0")
204 f0 = frequencies.get("f0")
205 f1 = frequencies.get("f1")
205 f1 = frequencies.get("f1")
206 f2 = frequencies.get("f2")
206 f2 = frequencies.get("f2")
207 f3 = frequencies.get("f3")
207 f3 = frequencies.get("f3")
208 print f0,f1,f2,f3
208 print f0,f1,f2,f3
209
209
210
210
211 if not response:
211 if not response:
212 messages.error(request, "Could not read parameters from Device")
212 messages.error(request, "Could not read parameters from Device")
213 return redirect('url_cgs_conf', id_conf=conf.id)
213 return redirect('url_cgs_conf', id_conf=conf.id)
214
214
215 data = {'experiment' : conf.experiment.id,
215 data = {'experiment' : conf.experiment.id,
216 'device' : conf.device.id,
216 'device' : conf.device.id,
217 'freq0' : f0,
217 'freq0' : f0,
218 'freq1' : f1,
218 'freq1' : f1,
219 'freq2' : f2,
219 'freq2' : f2,
220 'freq3' : f3,
220 'freq3' : f3,
221 }
221 }
222 except:
222 except:
223 messages.error(request, "Could not read parameters from Device")
223 messages.error(request, "Could not read parameters from Device")
224 data = {'experiment' : conf.experiment.id,
224 data = {'experiment' : conf.experiment.id,
225 'device' : conf.device.id,
225 'device' : conf.device.id,
226 'freq0' : None,
226 'freq0' : None,
227 'freq1' : None,
227 'freq1' : None,
228 'freq2' : None,
228 'freq2' : None,
229 'freq3' : None,
229 'freq3' : None,
230 }
230 }
231 return redirect('url_cgs_conf', id_conf=conf.id)
231 return redirect('url_cgs_conf', id_conf=conf.id)
232
232
233 form = CGSConfigurationForm(initial = data)
233 form = CGSConfigurationForm(initial = data)
234
234
235 kwargs = {}
235 kwargs = {}
236 kwargs['id_dev'] = conf.id
236 kwargs['id_dev'] = conf.id
237 kwargs['form'] = form
237 kwargs['form'] = form
238 kwargs['title'] = 'Device Configuration'
238 kwargs['title'] = 'Device Configuration'
239 kwargs['suptitle'] = 'Parameters read from device'
239 kwargs['suptitle'] = 'Parameters read from device'
240 kwargs['button'] = 'Save'
240 kwargs['button'] = 'Save'
241
241
242 ###### SIDEBAR ######
242 ###### SIDEBAR ######
243 kwargs.update(sidebar(conf))
243 kwargs.update(sidebar(conf))
244
244
245 return render(request, 'cgs_conf_edit.html', kwargs)
245 return render(request, 'cgs_conf_edit.html', kwargs)
246
246
247 def cgs_conf_import(request, id_conf):
248
249 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
250
251 if request.method == 'POST':
252 file_form = UploadFileForm(request.POST, request.FILES)
253
254 if file_form.is_valid():
255
256 try:
257 if conf.update_from_file(request.FILES['file']):
258
259 try:
260 conf.full_clean()
261 except ValidationError as e:
262 messages.error(request, e)
263 else:
264 conf.save()
265
266 messages.success(request, "Parameters imported from file: '%s'." %request.FILES['file'].name)
267 #messages.warning(request,"")
268 return redirect('url_cgs_conf', id_conf=conf.id)
269 except:
270 messages.error(request, "No JSON object could be decoded.")
271
272 messages.error(request, "Could not import parameters from file")
273
274 else:
275 file_form = UploadFileForm(initial={'title': '.json'})
276
277
278 kwargs = {}
279 kwargs['id_dev'] = conf.id
280 kwargs['title'] = 'Device Configuration'
281 kwargs['form'] = file_form
282 kwargs['suptitle'] = 'Importing file'
283 kwargs['button'] = 'Import'
284
285 kwargs.update(sidebar(conf))
286
287 return render(request, 'cgs_conf_import.html', kwargs)
288
289 def handle_uploaded_file(f):
290
291 data = {'freq0' : 62500000,
292 'freq1' : 62500000,
293 'freq2' : 62500000,
294 'freq3' : 62500000,
295 }
296
297 return data
298
247 def cgs_conf_export(request, id_conf):
299 def cgs_conf_export(request, id_conf):
248
300
249 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
301 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
250 ip=conf.device.ip_address
302 ip=conf.device.ip_address
251 port=conf.device.port_address
303 port=conf.device.port_address
252
304
253 if request.method=='POST':
305 if request.method=='POST':
254 return HttpResponse(conf.parameters, content_type="application/json")
306 return HttpResponse(conf.parameters, content_type="application/json")
255
307
256 return render(request, 'cgs_conf.html')
308 return render(request, 'cgs_conf.html')
257 #return redirect(conf.get_absolute_url())
309 #return redirect(conf.get_absolute_url())
258
310
General Comments 0
You need to be logged in to leave comments. Login now