##// END OF EJS Templates
Task #1119: save and cancel button...
Fiorella Quino -
r270:ef93cf215be8
parent child
Show More
@@ -1,16 +1,16
1 1 {% extends "dev_conf.html" %}
2 2 {% load static %}
3 3 {% load bootstrap3 %}
4 4 {% load main_tags %}
5 5
6 6
7 7 {% block extra-content %}
8 8
9 9 <div class="clearfix"></div>
10 <h2>JARS filter: {{resolution}} (MHz)</h2>
10 <h2>JARS filter: {{resolution}}</h2>
11 11 <hr>
12 12 <div class="panel-group" id="div_lines" role="tablist" aria-multiselectable="true">
13 13 {% include "jars_filter.html" %}
14 14 </div>
15 15
16 16 {% endblock extra-content%}
@@ -1,293 +1,311
1 1 from django.shortcuts import render_to_response
2 2 from django.template import RequestContext
3 3 from django.shortcuts import redirect, render, get_object_or_404
4 4 from django.contrib import messages
5 5
6 6 from apps.main.models import Device
7 7 from apps.main.views import sidebar
8 8
9 9 from .models import JARSConfiguration, JARSfilter
10 10 from .forms import JARSConfigurationForm, JARSfilterForm, JARSImportForm
11 11
12 12 import json
13 13 # Create your views here.
14 14
15 15 def jars_conf(request, id_conf):
16 16
17 17 conf = get_object_or_404(JARSConfiguration, pk=id_conf)
18 18
19 19 filter_parms = eval(conf.filter_parms)
20 20 if filter_parms.__class__.__name__=='str':
21 21 filter_parms = eval(filter_parms)
22 22
23 23 kwargs = {}
24 24 kwargs['filter'] = filter_parms
25 25 kwargs['filter_keys'] = ['clock', 'mult', 'fch', 'fch_decimal',
26 26 'filter_fir', 'filter_2', 'filter_5']
27
27 28 filter_resolution=conf.filter_resolution()
28 kwargs['resolution'] = filter_resolution
29
29 kwargs['resolution'] = '{} (MHz)'.format(filter_resolution)
30 if filter_resolution < 1:
31 kwargs['resolution'] = '{} (kHz)'.format(filter_resolution*1000)
32
30 33 kwargs['status'] = conf.device.get_status_display()
31 34
32 35
33 36 kwargs['dev_conf'] = conf
34 37 kwargs['dev_conf_keys'] = ['name',
35 38 'cards_number', 'channels_number', 'channels',
36 39 #'rd_directory', 'pd_directory',
37 40 'data_type',
38 41 'acq_profiles', 'profiles_block', 'raw_data_blocks', 'ftp_interval', 'fftpoints',
39 42 'cohe_integr_str', 'decode_data',
40 43 'incohe_integr', 'cohe_integr', 'spectral_number',
41 44 'spectral', 'create_directory', 'include_expname',
42 45 'save_ch_dc', 'save_data']
43 46
44 47 kwargs['title'] = 'JARS Configuration'
45 48 kwargs['suptitle'] = 'Details'
46 49
47 50 kwargs['button'] = 'Edit Configuration'
48 51
49 52 #kwargs['no_play'] = True
50 53
51 54 #kwargs['only_stop'] = True
52 55
53 56 ###### SIDEBAR ######
54 57 kwargs.update(sidebar(conf=conf))
55 58
56 59 return render(request, 'jars_conf.html', kwargs)
57 60
58 61 def jars_conf_edit(request, id_conf):
59 62
60 63 conf = get_object_or_404(JARSConfiguration, pk=id_conf)
61 64
62 65 filter_parms = eval(conf.filter_parms)
63 66 if filter_parms.__class__.__name__=='str':
64 67 filter_parms = eval(filter_parms)
65 68
66 69 if request.method=='GET':
67 70 form = JARSConfigurationForm(instance=conf)
68 71 filter_form = JARSfilterForm(initial=filter_parms)
69 72
70 73 if request.method=='POST':
71 74 form = JARSConfigurationForm(request.POST, instance=conf)
72 75 filter_form = JARSfilterForm(request.POST)
73 76
74 77 if filter_form.is_valid():
75 78 jars_filter = filter_form.cleaned_data
76 79 try:
77 80 jars_filter.pop('name')
78 81 except:
79 82 pass
80 83
81 84 if form.is_valid():
82 85 conf = form.save(commit=False)
83 86 conf.filter_parms = json.dumps(jars_filter)
84 87 conf.save()
85 88 return redirect('url_jars_conf', id_conf=conf.id)
86 89
87 90 kwargs = {}
88 91
89 92 kwargs['id_dev'] = conf.id
90 93 kwargs['form'] = form
91 94 kwargs['filter_form'] = filter_form
92 95 kwargs['title'] = 'Device Configuration'
93 96 kwargs['suptitle'] = 'Edit'
94 97 kwargs['button'] = 'Save'
95 98
96 99 return render(request, 'jars_conf_edit.html', kwargs)
97 100
98 101 def import_file(request, conf_id):
99 102
100 103 conf = get_object_or_404(JARSConfiguration, pk=conf_id)
101 104 if request.method=='POST':
102 105 form = JARSImportForm(request.POST, request.FILES)
103 106 if form.is_valid():
104 107 #try:
105 108 if True:
106 109 data = conf.import_from_file(request.FILES['file_name'])
107 110 conf.dict_to_parms(data)
108 111 messages.success(request, 'Configuration "%s" loaded succesfully' % request.FILES['file_name'])
109 112 return redirect(conf.get_absolute_url_edit())
110 113
111 114 #except Exception as e:
112 115 # messages.error(request, 'Error parsing file: "%s" - %s' % (request.FILES['file_name'], e))
113 116
114 117 else:
115 118 messages.warning(request, 'Your current configuration will be replaced')
116 119 form = JARSImportForm()
117 120
118 121 kwargs = {}
119 122 kwargs['form'] = form
120 123 kwargs['title'] = 'JARS Configuration'
121 124 kwargs['suptitle'] = 'Import file'
122 125 kwargs['button'] = 'Upload'
123 126 kwargs['previous'] = conf.get_absolute_url()
124 127
125 128 return render(request, 'jars_import.html', kwargs)
126 129
127 130 def read_conf(request, conf_id):
128 131
129 132 conf = get_object_or_404(JARSConfiguration, pk=conf_id)
130 133 #filter = get_object_or_404(JARSfilter, pk=filter_id)
131 134
132 135 if request.method=='GET':
133 136
134 137 parms = conf.read_device()
135 138 conf.status_device()
136 139
137 140 if not parms:
138 141 messages.error(request, conf.message)
139 142 return redirect(conf.get_absolute_url())
140 143
141 144 form = JARSConfigurationForm(initial=parms, instance=conf)
142 145
143 146 if request.method=='POST':
144 147 form = JARSConfigurationForm(request.POST, instance=conf)
145 148
146 149 if form.is_valid():
147 150 form.save()
148 151 return redirect(conf.get_absolute_url())
149 152
150 153 messages.error(request, "Parameters could not be saved")
151 154
152 155 kwargs = {}
153 156 kwargs['id_dev'] = conf.id
154 157 kwargs['filter_id'] = conf.filter.id
155 158 kwargs['form'] = form
156 159 kwargs['title'] = 'Device Configuration'
157 160 kwargs['suptitle'] = 'Parameters read from device'
158 161 kwargs['button'] = 'Save'
159 162
160 163 ###### SIDEBAR ######
161 164 kwargs.update(sidebar(conf=conf))
162 165
163 166 return render(request, 'jars_conf_edit.html', kwargs)
164 167
165 168 def view_filter(request, conf_id, filter_id):
166 169
167 170 conf = get_object_or_404(JARSConfiguration, pk=conf_id)
168 171 filter = get_object_or_404(JARSfilter, pk=filter_id)
169 172
170 173 filter_parms = eval(conf.filter_parms)
171 174 if filter_parms.__class__.__name__=='str':
172 175 filter_parms = eval(filter_parms)
173 176 #filter.name = filter_parms['name']
174 177 filter.clock = filter_parms['clock']
175 178 filter.mult = filter_parms['mult']
176 179 filter.fch = filter_parms['fch']
177 180 filter.fch_decimal = filter_parms['fch_decimal']
178 181 filter.filter_fir = filter_parms['filter_fir']
179 182 filter.filter_2 = filter_parms['filter_2']
180 183 filter.filter_5 = filter_parms['filter_5']
181 184
182 185 kwargs = {}
183 186 kwargs['conf'] = conf
184 187 kwargs['filter'] = filter
185 188 kwargs['dev_conf'] = filter
186 189 kwargs['dev_conf_keys'] = ['clock', 'mult', #'name',
187 190 'fch', 'fch_decimal',
188 191 'filter_2', 'filter_5',
189 192 'filter_fir']
190 193
191 194 kwargs['title'] = 'Filter View'
192 195 kwargs['suptitle'] = 'Details'
193 196 kwargs['button'] = 'SI'
194 197 kwargs['edit_button'] = 'Edit Filter'
195 198 kwargs['add_button'] = 'New Filter'
196 199
197 200 return render(request, 'jars_filter.html', kwargs)
198 201
199 202 def edit_filter(request, conf_id, filter_id):
200 203
201 204 conf = get_object_or_404(JARSConfiguration, pk=conf_id)
202 205 filter_parms = eval(conf.filter_parms)
203 206
204 207 if filter_id:
205 208 filter = get_object_or_404(JARSfilter, pk=filter_id)
206 209
207 210 if request.method=='GET':
208 211 form = JARSfilterForm(initial=filter_parms)
209 212
210 213 if request.method=='POST':
211 214 parms = {}
212 215 #parms['name'] = request.POST['name']
213 216 parms['clock'] = request.POST['clock']
214 217 parms['mult'] = request.POST['mult']
215 218 parms['fch'] = request.POST['fch']
216 219 parms['fch_decimal'] = request.POST['fch_decimal']
217 220 parms['filter_fir'] = request.POST['filter_fir']
218 221 parms['filter_2'] = request.POST['filter_2']
219 222 parms['filter_5'] = request.POST['filter_5']
220 223
221 224 conf.filter_parms = parms
222 225 conf.save()
223 226
224 227 #form = JARSfilterForm(request.POST)
225 228 #form = JARSfilterForm(request.POST, instance=filter)
226 229 #if form.is_valid():
227 230 #form.save()
228 231 # messages.success(request, 'JARS Filter successfully updated')
229 232 # return redirect('url_jars_filter', conf.id, filter.id)
230 233 return redirect('url_jars_filter', conf.id, filter.id)
231 234
232 235 kwargs = {}
233 236 kwargs['form'] = form
234 237 kwargs['title'] = conf.name
235 238 kwargs['suptitle'] = 'Edit Filter'
236 239 kwargs['button'] = 'Save'
237 240 # kwargs['previous'] = conf.get_absolute_url_edit()
238 241 kwargs['dev_conf'] = conf
239 242
240 243 return render(request, 'jars_filter_edit.html', kwargs)
241 244
242 245 def new_filter(request, conf_id):
243 246
244 247 conf = get_object_or_404(JARSConfiguration, pk=conf_id)
245 248
246 249 if request.method=='GET':
247 250 form = JARSfilterForm()
248 251
249 252 if request.method=='POST':
250 253 form = JARSfilterForm(request.POST)
251 254 if form.is_valid():
252 255 form.save()
253 256 new_filter = get_object_or_404(JARSfilter, name=request.POST['name'])
254 257 conf.filter = new_filter
255 258 conf.add_parms_to_filter()
256 259 messages.success(request, 'New JARS Filter successfully created')
257 260 return redirect('url_edit_jars_conf', id_conf=conf.id)
258 261
259 262 kwargs = {}
260 263 kwargs['form'] = form
261 264 kwargs['title'] = 'New Filter'
262 265 kwargs['suptitle'] = ''
263 266 kwargs['button'] = 'Create'
264 267 # kwargs['previous'] = conf.get_absolute_url_edit()
265 268 kwargs['dev_conf'] = conf
266 269
267 270 return render(request, 'jars_new_filter.html', kwargs)
268 271
269 272
270 273 def change_filter(request, conf_id, filter_id=None):
271 274
272 275 conf = get_object_or_404(JARSConfiguration, pk=conf_id)
273 276
274 277 if filter_id:
275 278 if filter_id.__class__.__name__ not in ['int', 'float']:
276 279 filter_id = eval(filter_id)
277 280
278 281 if filter_id == 0:
279 282 return redirect('url_change_jars_filter', conf_id=conf.id)
280 283
281 284 if request.method=='GET':
282 285 if not filter_id:
283 286 form = JARSfilterForm(initial={'jars_configuration':conf_id, 'filter_id': 0})
284 287 else:
285 288 form = JARSfilterForm(initial={'jars_configuration':conf_id, 'filter_id': filter_id})
286 289
290 if request.method=='POST':
291 form = JARSfilterForm(request.POST)
292 if form.is_valid():
293 jars_filter = form.cleaned_data
294 try:
295 jars_filter.pop('name')
296 except:
297 pass
298 conf.filter_parms = json.dumps(jars_filter)
299 conf.save()
300 return redirect('url_edit_jars_conf', id_conf=conf.id)
301
302 print jars_filter
303
287 304 kwargs = {}
288 305 kwargs['title'] = 'JARS Configuration'
289 306 kwargs['suptitle'] = 'Change Filter'
290 307 kwargs['form'] = form
308 kwargs['button'] = 'Change'
291 309 kwargs['conf_id'] = conf.id
292 310 kwargs['filter_id'] = filter_id
293 311 return render(request, 'change_jars_filter.html', kwargs)
General Comments 0
You need to be logged in to leave comments. Login now