##// END OF EJS Templates
- Mejorando la navegacion de la aplicacion web.
jsalyrosas -
r176:177
parent child
Show More
@@ -1,398 +1,401
1 from django.shortcuts import render_to_response, redirect
1 from django.shortcuts import render_to_response, redirect
2 from django.http import HttpResponse
2 from django.http import HttpResponse
3 from django.conf import settings
3 from django.conf import settings
4 from django.utils.encoding import smart_str
4 from django.utils.encoding import smart_str
5 from django.core.servers.basehttp import FileWrapper
5 from django.core.servers.basehttp import FileWrapper
6 import mimetypes
6 import mimetypes
7
7
8 from datetime import datetime
8 from datetime import datetime
9
9
10 from abscontrol.models import Profile, Pattern, AntennaDown, AntennaUp
10 from abscontrol.models import Profile, Pattern, AntennaDown, AntennaUp
11
11
12 from util.readABSFile import readABSFile
12 from util.readABSFile import readABSFile
13 from util.saveABSFile import saveABSFile
13 from util.saveABSFile import saveABSFile
14 from scripts.sendFile import sendFile
14 from scripts.sendFile import sendFile
15
15
16 txtAntenna = "[[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]," \
16 txtAntenna = "[[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]," \
17 "[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]," \
17 "[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]," \
18 "[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]," \
18 "[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]," \
19 "[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]," \
19 "[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]," \
20 "[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]," \
20 "[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]," \
21 "[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]," \
21 "[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]," \
22 "[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]," \
22 "[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]," \
23 "[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]]"
23 "[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]]"
24
24
25 txtTxUp = "[[1,1,1,1,1,1,1,1]," \
25 txtTxUp = "[[1,1,1,1,1,1,1,1]," \
26 "[1,1,1,1,1,1,1,1]," \
26 "[1,1,1,1,1,1,1,1]," \
27 "[1,1,1,1,1,1,1,1]," \
27 "[1,1,1,1,1,1,1,1]," \
28 "[1,1,1,1,1,1,1,1]," \
28 "[1,1,1,1,1,1,1,1]," \
29 "[1,1,1,1,1,1,1,1]," \
29 "[1,1,1,1,1,1,1,1]," \
30 "[1,1,1,1,1,1,1,1]," \
30 "[1,1,1,1,1,1,1,1]," \
31 "[1,1,1,1,1,1,1,1]," \
31 "[1,1,1,1,1,1,1,1]," \
32 "[1,1,1,1,1,1,1,1]]"
32 "[1,1,1,1,1,1,1,1]]"
33
33
34 txtTxDown = "[[1,1,1,1,0,0,0,0]," \
34 txtTxDown = "[[1,1,1,1,0,0,0,0]," \
35 "[1,1,1,1,0,0,0,0]," \
35 "[1,1,1,1,0,0,0,0]," \
36 "[1,1,1,1,0,0,0,0]," \
36 "[1,1,1,1,0,0,0,0]," \
37 "[1,1,1,1,0,0,0,0]," \
37 "[1,1,1,1,0,0,0,0]," \
38 "[0,0,0,0,1,1,1,1]," \
38 "[0,0,0,0,1,1,1,1]," \
39 "[0,0,0,0,1,1,1,1]," \
39 "[0,0,0,0,1,1,1,1]," \
40 "[0,0,0,0,1,1,1,1]," \
40 "[0,0,0,0,1,1,1,1]," \
41 "[0,0,0,0,1,1,1,1]]"
41 "[0,0,0,0,1,1,1,1]]"
42
42
43 txtRxUp = "[[0,0,0,0,1,1,1,1]," \
43 txtRxUp = "[[0,0,0,0,1,1,1,1]," \
44 "[0,0,0,0,1,1,1,1]," \
44 "[0,0,0,0,1,1,1,1]," \
45 "[0,0,0,0,1,1,1,1]," \
45 "[0,0,0,0,1,1,1,1]," \
46 "[0,0,0,0,1,1,1,1]," \
46 "[0,0,0,0,1,1,1,1]," \
47 "[1,1,1,1,1,1,1,1]," \
47 "[1,1,1,1,1,1,1,1]," \
48 "[1,1,1,1,1,1,1,1]," \
48 "[1,1,1,1,1,1,1,1]," \
49 "[1,1,1,1,1,1,1,1]," \
49 "[1,1,1,1,1,1,1,1]," \
50 "[1,1,1,1,1,1,1,1]]"
50 "[1,1,1,1,1,1,1,1]]"
51
51
52 txtRxDown = "[[1,1,1,1,1,1,1,1]," \
52 txtRxDown = "[[1,1,1,1,1,1,1,1]," \
53 "[1,1,1,1,1,1,1,1]," \
53 "[1,1,1,1,1,1,1,1]," \
54 "[1,1,1,1,1,1,1,1]," \
54 "[1,1,1,1,1,1,1,1]," \
55 "[1,1,1,1,1,1,1,1]," \
55 "[1,1,1,1,1,1,1,1]," \
56 "[1,1,1,1,1,1,1,1]," \
56 "[1,1,1,1,1,1,1,1]," \
57 "[1,1,1,1,1,1,1,1]," \
57 "[1,1,1,1,1,1,1,1]," \
58 "[1,1,1,1,1,1,1,1]," \
58 "[1,1,1,1,1,1,1,1]," \
59 "[1,1,1,1,1,1,1,1]]"
59 "[1,1,1,1,1,1,1,1]]"
60
60
61 txtUes = "[0.533333,0.00000,1.06667,0.00000]"
61 txtUes = "[0.533333,0.00000,1.06667,0.00000]"
62
62
63 def index(request):
63 def index(request):
64 #latest_poll_list = profileAntenna.objects.all().order_by('-pub_date')[:5]
64 #latest_poll_list = profileAntenna.objects.all().order_by('-pub_date')[:5]
65 profile_list = Profile.objects.filter(state=1)
65 profile_list = Profile.objects.filter(state=1)
66 return render_to_response('abscontrol/index.html', {'profile_list': profile_list})
66 return render_to_response('abscontrol/index.html', {'profile_list': profile_list})
67
67
68 def new(request):
68 def new(request):
69 profile_list = Profile.objects.filter(state=1)
69 profile_list = Profile.objects.filter(state=1)
70 txtProfile = datetime.now().strftime("%Y%m%d%H%M%S%f")
70 txtProfile = datetime.now().strftime("%Y%m%d%H%M%S%f")
71 newprofile = Profile(name=txtProfile)
71 newprofile = Profile(name=txtProfile)
72 newprofile.save()
72 newprofile.save()
73
73
74 lsPatterns = None
74 lsPatterns = None
75
75
76 return render_to_response('abscontrol/new.html', {'profile_list': profile_list,
76 return render_to_response('abscontrol/new.html', {'profile_list': profile_list,
77 'txtAntenna' : txtAntenna,
77 'txtAntenna' : txtAntenna,
78 'profile_name' : newprofile.name,
78 'profile_name' : newprofile.name,
79 'profile_id' : newprofile.id,
79 'profile_id' : newprofile.id,
80 'lsPatterns' : lsPatterns,
80 'lsPatterns' : lsPatterns,
81 'txtUes' : txtUes, 'txtTxUp' : txtTxUp,
81 'txtUes' : txtUes, 'txtTxUp' : txtTxUp,
82 'txtTxDown' : txtTxDown, 'txtRxUp' : txtRxUp,
82 'txtTxDown' : txtTxDown, 'txtRxUp' : txtRxUp,
83 'txtRxDown' : txtRxDown,
83 'txtRxDown' : txtRxDown,
84 })
84 })
85
85
86 def save(request):
86 def save(request):
87
87
88 txtProfile = request.POST["txtProfile"]
88 txtProfile = request.POST["txtProfile"]
89
89
90 txtAntennaUp = request.POST["txtAntennaUp"]
90 txtAntennaUp = request.POST["txtAntennaUp"]
91 txtTxUp = request.POST["txtTxUp"]
91 txtTxUp = request.POST["txtTxUp"]
92 txtRxUp = request.POST["txtRxUp"]
92 txtRxUp = request.POST["txtRxUp"]
93 txtUesUp = request.POST["txtUesUp"]
93 txtUesUp = request.POST["txtUesUp"]
94
94
95 txtAntennaDown = request.POST["txtAntennaDown"]
95 txtAntennaDown = request.POST["txtAntennaDown"]
96 txtTxDown = request.POST["txtTxDown"]
96 txtTxDown = request.POST["txtTxDown"]
97 txtRxDown = request.POST["txtRxDown"]
97 txtRxDown = request.POST["txtRxDown"]
98 txtUesDown = request.POST["txtUesDown"]
98 txtUesDown = request.POST["txtUesDown"]
99
99
100 newprofile = Profile(name=txtProfile)
100 newprofile = Profile(name=txtProfile)
101 newprofile.save()
101 newprofile.save()
102
102
103 newpattern = newprofile.pattern_set.create(value=1)
103 newpattern = newprofile.pattern_set.create(value=1)
104 newpattern.antennaup_set.create(value=txtAntennaUp,tx=txtTxUp,rx=txtRxUp,ues=txtUesUp)
104 newpattern.antennaup_set.create(value=txtAntennaUp,tx=txtTxUp,rx=txtRxUp,ues=txtUesUp)
105 newpattern.antennadown_set.create(value=txtAntennaDown,tx=txtTxDown,rx=txtRxDown,ues=txtUesDown)
105 newpattern.antennadown_set.create(value=txtAntennaDown,tx=txtTxDown,rx=txtRxDown,ues=txtUesDown)
106
106
107 newurl = '/abscontrol/view/%d' % newprofile.id
107 newurl = '/abscontrol/view/%d' % newprofile.id
108
108
109 return redirect(newurl)
109 return redirect(newurl)
110
110
111 def view(request, profile_id):
111 def view(request, profile_id):
112 nextPattern = 0
112 nextPattern = 0
113
113
114 if request.method == 'GET' and 'pattern' in request.GET:
114 if request.method == 'GET' and 'pattern' in request.GET:
115 pattern_value = request.GET["pattern"]
115 pattern_value = request.GET["pattern"]
116 else:
116 else:
117 pattern_value = 1
117 pattern_value = 1
118
118
119 profile_list = Profile.objects.all()
119 profile_list = Profile.objects.filter(state=1)
120 objProfile = Profile.objects.get(pk=profile_id)
120 objProfile = Profile.objects.get(pk=profile_id)
121
121
122 lsPatterns = objProfile.pattern_set.all()
122 lsPatterns = objProfile.pattern_set.all()
123 patternChoosen = objProfile.pattern_set.get(value=pattern_value)
123 patternChoosen = objProfile.pattern_set.get(value=pattern_value)
124 objAntennaUp = patternChoosen.antennaup_set.get()
124 objAntennaUp = patternChoosen.antennaup_set.get()
125 objAntennaDown = patternChoosen.antennadown_set.get()
125 objAntennaDown = patternChoosen.antennadown_set.get()
126
126
127 if len(lsPatterns) > 1:
127 if len(lsPatterns) > 1:
128 if pattern_value == 1:
128 if pattern_value == 1:
129 nextValuePattern = pattern_value + 1
129 nextValuePattern = pattern_value + 1
130 nextPattern = objProfile.pattern_set.get(value=nextValuePattern)
130 nextPattern = objProfile.pattern_set.get(value=nextValuePattern)
131
131
132
132
133 return render_to_response('abscontrol/view.html', {'objProfile': objProfile, 'profile_list': profile_list,
133 return render_to_response('abscontrol/view.html', {'objProfile': objProfile, 'profile_list': profile_list,
134 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
134 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
135 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
135 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
136 'nextPattern' : nextPattern,
136 'nextPattern' : nextPattern,
137 })
137 })
138
138
139 def edit(request, profile_id):
139 def edit(request, profile_id):
140 if request.method == 'GET' and 'pattern' in request.GET:
140 if request.method == 'GET' and 'pattern' in request.GET:
141 pattern_value = request.GET["pattern"]
141 pattern_value = request.GET["pattern"]
142 else:
142 else:
143 pattern_value = 1
143 pattern_value = 1
144
144
145 profile_list = Profile.objects.all()
145 profile_list = Profile.objects.filter(state=1)
146 objProfile = Profile.objects.get(pk=profile_id)
146 objProfile = Profile.objects.get(pk=profile_id)
147
147
148 lsPatterns = objProfile.pattern_set.all()
148 lsPatterns = objProfile.pattern_set.all()
149 patternChoosen = objProfile.pattern_set.get(value=pattern_value)
149 patternChoosen = objProfile.pattern_set.get(value=pattern_value)
150 objAntennaUp = patternChoosen.antennaup_set.get()
150 objAntennaUp = patternChoosen.antennaup_set.get()
151 objAntennaDown = patternChoosen.antennadown_set.get()
151 objAntennaDown = patternChoosen.antennadown_set.get()
152
152
153 return render_to_response('abscontrol/edit.html', {'objProfile': objProfile, 'profile_list': profile_list,
153 return render_to_response('abscontrol/edit.html', {'objProfile': objProfile, 'profile_list': profile_list,
154 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
154 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
155 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
155 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
156 })
156 })
157
157
158 def addPattern(request, profile_id):
158 def addPattern(request, profile_id):
159 profile_list = Profile.objects.filter(state=1)
159 profile_list = Profile.objects.filter(state=1)
160 objProfile = Profile.objects.get(pk=profile_id)
160 objProfile = Profile.objects.get(pk=profile_id)
161
161
162 return render_to_response('abscontrol/addPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
162 return render_to_response('abscontrol/addPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
163 'txtAntenna' : txtAntenna, 'txtUes' : txtUes,
163 'txtAntenna' : txtAntenna, 'txtUes' : txtUes,
164 'txtTxUp' : txtTxUp, 'txtTxDown' : txtTxDown,
164 'txtTxUp' : txtTxUp, 'txtTxDown' : txtTxDown,
165 'txtRxUp' : txtRxUp, 'txtRxDown' : txtRxDown,
165 'txtRxUp' : txtRxUp, 'txtRxDown' : txtRxDown,
166 })
166 })
167
167
168 def editPattern(request, profile_id, pattern_id):
168 def editPattern(request, profile_id, pattern_id):
169 profile_list = Profile.objects.filter(state=1)
169 profile_list = Profile.objects.filter(state=1)
170 objProfile = Profile.objects.get(pk=profile_id)
170 objProfile = Profile.objects.get(pk=profile_id)
171 lsPatterns = objProfile.pattern_set.all()
171 lsPatterns = objProfile.pattern_set.all()
172 patternChoosen = Pattern.objects.get(pk=pattern_id)
172 patternChoosen = Pattern.objects.get(pk=pattern_id)
173 objAntennaUp = patternChoosen.antennaup_set.get()
173 objAntennaUp = patternChoosen.antennaup_set.get()
174 objAntennaDown = patternChoosen.antennadown_set.get()
174 objAntennaDown = patternChoosen.antennadown_set.get()
175
175
176 return render_to_response('abscontrol/editPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
176 return render_to_response('abscontrol/editPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
177 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
177 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
178 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
178 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
179 })
179 })
180
180
181 def savePattern(request, profile_id):
181 def savePattern(request, profile_id):
182 pattern_id = 0
182 pattern_id = 0
183 method = "save"
183 method = "save"
184
184
185 if 'pattern_id' in request.POST:
185 if 'pattern_id' in request.POST:
186 pattern_id = request.POST["pattern_id"]
186 pattern_id = request.POST["pattern_id"]
187 method = "update"
187 method = "update"
188
188
189 maxValuePattern = 0
189 maxValuePattern = 0
190 txtAntennaUp = request.POST["txtAntennaUp"]
190 txtAntennaUp = request.POST["txtAntennaUp"]
191 txtTxUp = request.POST["txtTxUp"]
191 txtTxUp = request.POST["txtTxUp"]
192 txtRxUp = request.POST["txtRxUp"]
192 txtRxUp = request.POST["txtRxUp"]
193 txtUesUp = request.POST["txtUesUp"]
193 txtUesUp = request.POST["txtUesUp"]
194
194
195 txtAntennaDown = request.POST["txtAntennaDown"]
195 txtAntennaDown = request.POST["txtAntennaDown"]
196 txtTxDown = request.POST["txtTxDown"]
196 txtTxDown = request.POST["txtTxDown"]
197 txtRxDown = request.POST["txtRxDown"]
197 txtRxDown = request.POST["txtRxDown"]
198 txtUesDown = request.POST["txtUesDown"]
198 txtUesDown = request.POST["txtUesDown"]
199
199
200 mode = request.POST["mode"]
200 mode = request.POST["mode"]
201
201
202 if method == "save":
202 if method == "save":
203 objProfile = Profile.objects.get(pk=profile_id)
203 objProfile = Profile.objects.get(pk=profile_id)
204 lsPatterns = objProfile.pattern_set.all()
204 lsPatterns = objProfile.pattern_set.all()
205 if len(lsPatterns) > 0:
205 if len(lsPatterns) > 0:
206 for element in lsPatterns:
206 for element in lsPatterns:
207 if element.value > maxValuePattern:
207 if element.value > maxValuePattern:
208 maxPattern = element.value
208 maxPattern = element.value
209 else:
209 else:
210 maxPattern = 0
210 maxPattern = 0
211
211
212 if maxPattern < 10 :
212 if maxPattern < 10 :
213 newValuePattern = maxPattern + 1
213 newValuePattern = maxPattern + 1
214 newpattern = objProfile.pattern_set.create(value=newValuePattern)
214 newpattern = objProfile.pattern_set.create(value=newValuePattern)
215 newpattern.antennaup_set.create(value=txtAntennaUp,tx=txtTxUp,rx=txtRxUp,ues=txtUesUp)
215 newpattern.antennaup_set.create(value=txtAntennaUp,tx=txtTxUp,rx=txtRxUp,ues=txtUesUp)
216 newpattern.antennadown_set.create(value=txtAntennaDown,tx=txtTxDown,rx=txtRxDown,ues=txtUesDown)
216 newpattern.antennadown_set.create(value=txtAntennaDown,tx=txtTxDown,rx=txtRxDown,ues=txtUesDown)
217 error = 0
217 error = 0
218 else:
218 else:
219 error = 1 # Can not add more patterns
219 error = 1 # Can not add more patterns
220
220
221 if mode == "e":
221 if mode == "e":
222 newurl = '/abscontrol/%d/edit/%d' % (int(profile_id), newpattern.id)
222 newurl = '/abscontrol/%d/edit/%d' % (int(profile_id), newpattern.id)
223 else:
223 else:
224 newurl = '/abscontrol/%d/view/%d' % (int(profile_id), newpattern.id)
224 newurl = '/abscontrol/%d/view/%d' % (int(profile_id), newpattern.id)
225 else:
225 else:
226 txtAntennaUpId = request.POST["txtAntennaUpId"]
226 txtAntennaUpId = request.POST["txtAntennaUpId"]
227 objAntennaUp = AntennaUp.objects.get(pk=txtAntennaUpId)
227 objAntennaUp = AntennaUp.objects.get(pk=txtAntennaUpId)
228 objAntennaUp.value = txtAntennaUp
228 objAntennaUp.value = txtAntennaUp
229 objAntennaUp.tx = txtTxUp
229 objAntennaUp.tx = txtTxUp
230 objAntennaUp.rx = txtRxUp
230 objAntennaUp.rx = txtRxUp
231 objAntennaUp.ues = txtUesUp
231 objAntennaUp.ues = txtUesUp
232 objAntennaUp.save()
232 objAntennaUp.save()
233
233
234 txtAntennaDownId = request.POST["txtAntennaDownId"]
234 txtAntennaDownId = request.POST["txtAntennaDownId"]
235 objAntennaDown = AntennaDown.objects.get(pk=txtAntennaDownId)
235 objAntennaDown = AntennaDown.objects.get(pk=txtAntennaDownId)
236 objAntennaDown.value = txtAntennaDown
236 objAntennaDown.value = txtAntennaDown
237 objAntennaDown.tx = txtTxDown
237 objAntennaDown.tx = txtTxDown
238 objAntennaDown.rx = txtRxDown
238 objAntennaDown.rx = txtRxDown
239 objAntennaDown.ues = txtUesDown
239 objAntennaDown.ues = txtUesDown
240 objAntennaDown.save()
240 objAntennaDown.save()
241
241
242 newurl = '/abscontrol/%d/view/%d' % (int(profile_id), int(pattern_id))
242 if mode == "e":
243 newurl = '/abscontrol/%d/edit/%d' % (int(profile_id), int(pattern_id))
244 else:
245 newurl = '/abscontrol/%d/view/%d' % (int(profile_id), int(pattern_id))
243
246
244 return redirect(newurl)
247 return redirect(newurl)
245
248
246 def viewPattern(request, profile_id, pattern_id):
249 def viewPattern(request, profile_id, pattern_id):
247
250
248 profile_list = Profile.objects.all()
251 profile_list = Profile.objects.filter(state=1)
249 objProfile = Profile.objects.get(pk=profile_id)
252 objProfile = Profile.objects.get(pk=profile_id)
250
253
251 patternChoosen = Pattern.objects.get(pk=pattern_id)
254 patternChoosen = Pattern.objects.get(pk=pattern_id)
252
255
253 objAntennaUp = patternChoosen.antennaup_set.get()
256 objAntennaUp = patternChoosen.antennaup_set.get()
254 objAntennaDown = patternChoosen.antennadown_set.get()
257 objAntennaDown = patternChoosen.antennadown_set.get()
255
258
256 lsPatterns = objProfile.pattern_set.all()
259 lsPatterns = objProfile.pattern_set.all()
257
260
258 return render_to_response('abscontrol/viewPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
261 return render_to_response('abscontrol/viewPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
259 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
262 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
260 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
263 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
261 })
264 })
262
265
263 def deletePattern(request, profile_id, pattern_id):
266 def deletePattern(request, profile_id, pattern_id):
264 newurl = '/abscontrol/edit/%d' % int(profile_id)
267 newurl = '/abscontrol/edit/%d' % int(profile_id)
265
268
266 return redirect(newurl)
269 return redirect(newurl)
267
270
268 def importProfile(request):
271 def importProfile(request):
269 profile_list = Profile.objects.all()
272 profile_list = Profile.objects.all()
270 return render_to_response('abscontrol/import.html', {'profile_list': profile_list,})
273 return render_to_response('abscontrol/import.html', {'profile_list': profile_list,})
271
274
272 def showImport(request):
275 def showImport(request):
273 if request.method == 'POST':
276 if request.method == 'POST':
274 txtFilename = request.FILES['txtFile']
277 txtFilename = request.FILES['txtFile']
275 if txtFilename:
278 if txtFilename:
276 destination = open('/tmp/'+txtFilename.name, 'wb+')
279 destination = open('/tmp/'+txtFilename.name, 'wb+')
277 for chunk in txtFilename.chunks():
280 for chunk in txtFilename.chunks():
278 destination.write(chunk)
281 destination.write(chunk)
279 destination.close()
282 destination.close()
280 filename = '/tmp/'+txtFilename.name
283 filename = '/tmp/'+txtFilename.name
281 readFile = readABSFile(filename)
284 readFile = readABSFile(filename)
282 expName, num_patterns, patterns = readFile.getMetadata()
285 expName, num_patterns, patterns = readFile.getMetadata()
283 else:
286 else:
284 txtFilename = "Error"
287 txtFilename = "Error"
285 #content = "Error"
288 #content = "Error"
286 expName = ""
289 expName = ""
287 num_patterns = 0
290 num_patterns = 0
288
291
289 return render_to_response('abscontrol/upload-edit.html', {'txtFilename': txtFilename, 'patterns' : patterns,
292 return render_to_response('abscontrol/upload-edit.html', {'txtFilename': txtFilename, 'patterns' : patterns,
290 'expName' : expName, 'num_patterns' : num_patterns,
293 'expName' : expName, 'num_patterns' : num_patterns,
291 })
294 })
292
295
293 def saveImport(request):
296 def saveImport(request):
294 patterns = []
297 patterns = []
295
298
296 expName = request.POST["txtProfile"]
299 expName = request.POST["txtProfile"]
297 num_patterns = int(request.POST["txtNumPatterns"])
300 num_patterns = int(request.POST["txtNumPatterns"])
298
301
299 newprofile = Profile(name=expName)
302 newprofile = Profile(name=expName)
300 newprofile.save()
303 newprofile.save()
301
304
302 for i in range(0,num_patterns):
305 for i in range(0,num_patterns):
303 number = request.POST["txtNumberPattern"+str(i+1)]
306 number = request.POST["txtNumberPattern"+str(i+1)]
304 txtAntennaUp = request.POST["txtAntennaUp"+str(i+1)]
307 txtAntennaUp = request.POST["txtAntennaUp"+str(i+1)]
305 txtAntennaDown = request.POST["txtAntennaDown"+str(i+1)]
308 txtAntennaDown = request.POST["txtAntennaDown"+str(i+1)]
306 dicPattern = {"number" : number, "up" : txtAntennaUp, "down" : txtAntennaDown}
309 dicPattern = {"number" : number, "up" : txtAntennaUp, "down" : txtAntennaDown}
307 patterns.append(dicPattern)
310 patterns.append(dicPattern)
308 newpattern = newprofile.pattern_set.create(value=number)
311 newpattern = newprofile.pattern_set.create(value=number)
309 newpattern.antennaup_set.create(value=txtAntennaUp)
312 newpattern.antennaup_set.create(value=txtAntennaUp)
310 newpattern.antennadown_set.create(value=txtAntennaDown)
313 newpattern.antennadown_set.create(value=txtAntennaDown)
311
314
312 newurl = '/abscontrol/view/%d' % newprofile.id
315 newurl = '/abscontrol/view/%d' % newprofile.id
313
316
314 return redirect(newurl)
317 return redirect(newurl)
315 '''
318 '''
316 return render_to_response('abscontrol/upload-view.html', {'expName' : expName, 'patterns' : patterns,
319 return render_to_response('abscontrol/upload-view.html', {'expName' : expName, 'patterns' : patterns,
317 'num_patterns' : num_patterns,
320 'num_patterns' : num_patterns,
318 })
321 })
319 '''
322 '''
320
323
321 def overJRO(request, profile_id, pattern_id, antenna_id):
324 def overJRO(request, profile_id, pattern_id, antenna_id):
322 if request.GET["beam"] == "Up":
325 if request.GET["beam"] == "Up":
323 objAntenna = AntennaUp.objects.get(pk=antenna_id)
326 objAntenna = AntennaUp.objects.get(pk=antenna_id)
324 else:
327 else:
325 objAntenna = AntennaDown.objects.get(pk=antenna_id)
328 objAntenna = AntennaDown.objects.get(pk=antenna_id)
326 objProfile = Profile.objects.get(pk=profile_id)
329 objProfile = Profile.objects.get(pk=profile_id)
327 exp_name = objProfile.name
330 exp_name = objProfile.name
328
331
329 phase_tx = objAntenna.value
332 phase_tx = objAntenna.value
330 gain_tx = objAntenna.tx
333 gain_tx = objAntenna.tx
331 gain_rx = objAntenna.rx
334 gain_rx = objAntenna.rx
332 ues_tx = objAntenna.ues
335 ues_tx = objAntenna.ues
333 only_rx = objAntenna.only_rx
336 only_rx = objAntenna.only_rx
334
337
335 return exp_name, phase_tx, gain_tx, gain_rx, ues_tx, only_rx
338 return exp_name, phase_tx, gain_tx, gain_rx, ues_tx, only_rx
336
339
337 def export(request, profile_id):
340 def export(request, profile_id):
338 listPatterns = []
341 listPatterns = []
339 objProfile = Profile.objects.get(pk=profile_id)
342 objProfile = Profile.objects.get(pk=profile_id)
340 exp_name = objProfile.name
343 exp_name = objProfile.name
341 lsPatterns = objProfile.pattern_set.all()
344 lsPatterns = objProfile.pattern_set.all()
342 for element in lsPatterns:
345 for element in lsPatterns:
343 objAntennaUp = element.antennaup_set.get()
346 objAntennaUp = element.antennaup_set.get()
344 objAntennaDown = element.antennadown_set.get()
347 objAntennaDown = element.antennadown_set.get()
345 dicPatterns = {"number" : element.value, "up" : objAntennaUp.value, "down" : objAntennaDown.value}
348 dicPatterns = {"number" : element.value, "up" : objAntennaUp.value, "down" : objAntennaDown.value}
346 listPatterns.append(dicPatterns)
349 listPatterns.append(dicPatterns)
347
350
348 absFile = saveABSFile()
351 absFile = saveABSFile()
349 absFile.setParameters(settings.MEDIA_ROOT, exp_name, listPatterns)
352 absFile.setParameters(settings.MEDIA_ROOT, exp_name, listPatterns)
350 filename, filesize = absFile.save()
353 filename, filesize = absFile.save()
351
354
352 wrapper = FileWrapper( open( filename, "r" ) )
355 wrapper = FileWrapper( open( filename, "r" ) )
353 content_type = mimetypes.guess_type( filename )[0]
356 content_type = mimetypes.guess_type( filename )[0]
354
357
355 response = HttpResponse(wrapper, content_type = content_type)
358 response = HttpResponse(wrapper, content_type = content_type)
356 response['Content-Description'] = 'File Transfer'
359 response['Content-Description'] = 'File Transfer'
357 response['Content-Disposition'] = 'attachment; filename=%s' % smart_str(filename)
360 response['Content-Disposition'] = 'attachment; filename=%s' % smart_str(filename)
358 response['Content-Transfer-Encoding'] = 'binary'
361 response['Content-Transfer-Encoding'] = 'binary'
359 response['Expires'] = '0'
362 response['Expires'] = '0'
360 response['Cache-Control'] = 'must-revalidate'
363 response['Cache-Control'] = 'must-revalidate'
361 response['Pragma'] = 'public'
364 response['Pragma'] = 'public'
362 response['Content-Length'] = '%s' % str(filesize)
365 response['Content-Length'] = '%s' % str(filesize)
363 response['X-Sendfile'] = '%s' % smart_str(filename)
366 response['X-Sendfile'] = '%s' % smart_str(filename)
364
367
365 return response
368 return response
366
369
367 def send(request, profile_id):
370 def send(request, profile_id):
368 listPatterns = []
371 listPatterns = []
369 objProfile = Profile.objects.get(pk=profile_id)
372 objProfile = Profile.objects.get(pk=profile_id)
370 exp_name = objProfile.name
373 exp_name = objProfile.name
371
374
372 lsPatterns = objProfile.pattern_set.all()
375 lsPatterns = objProfile.pattern_set.all()
373 for element in lsPatterns:
376 for element in lsPatterns:
374 objAntennaUp = element.antennaup_set.get()
377 objAntennaUp = element.antennaup_set.get()
375 objAntennaDown = element.antennadown_set.get()
378 objAntennaDown = element.antennadown_set.get()
376 dicPatterns = {"number" : element.value, "up" : objAntennaUp.value, "down" : objAntennaDown.value}
379 dicPatterns = {"number" : element.value, "up" : objAntennaUp.value, "down" : objAntennaDown.value}
377 listPatterns.append(dicPatterns)
380 listPatterns.append(dicPatterns)
378
381
379 absFile = saveABSFile()
382 absFile = saveABSFile()
380 absFile.setParameters(settings.MEDIA_ROOT, exp_name, listPatterns)
383 absFile.setParameters(settings.MEDIA_ROOT, exp_name, listPatterns)
381 filename, filesize = absFile.save()
384 filename, filesize = absFile.save()
382
385
383 apiclient = sendFile()
386 apiclient = sendFile()
384 apiclient.execute(filename)
387 apiclient.execute(filename)
385 output = apiclient.getOutput()
388 output = apiclient.getOutput()
386
389
387 if output == "OK":
390 if output == "OK":
388 message = "File sent successfully."
391 message = "File sent successfully."
389 objProfile.hits += 1
392 objProfile.hits += 1
390 objProfile.save()
393 objProfile.save()
391 else:
394 else:
392 message = "Error sending file."
395 message = "Error sending file."
393
396
394 profile_list = Profile.objects.all()
397 profile_list = Profile.objects.all()
395
398
396 return render_to_response('abscontrol/sendFile.html', {'message': message, "profile_list" : profile_list,
399 return render_to_response('abscontrol/sendFile.html', {'message': message, "profile_list" : profile_list,
397 'objProfile': objProfile,
400 'objProfile': objProfile,
398 })
401 })
@@ -1,96 +1,97
1 /*
1 /*
2 * font-family: 'Droid Sans', sans-serif;
2 * font-family: 'Droid Sans', sans-serif;
3 * font-family: 'Ubuntu', sans-serif;
3 * font-family: 'Ubuntu', sans-serif;
4 * font-family: 'Open Sans', sans-serif;
4 * font-family: 'Open Sans', sans-serif;
5 * font-family: 'Open Sans Condensed', sans-serif;
5 * font-family: 'Open Sans Condensed', sans-serif;
6 * font-family: 'Roboto Condensed', sans-serif;
6 * font-family: 'Roboto Condensed', sans-serif;
7 */
7 */
8
8
9 body { font-size: 12px; }
9 body { font-size: 12px; }
10 header {border: 1px solid #fcc; font-size: 2em; height: 50px; text-align: center; line-height: 50px}
10 header {border: 1px solid #fcc; font-size: 2em; height: 50px; text-align: center; line-height: 50px}
11 #schema {margin: 0 auto; width: 980px; border: 1px solid #f00; padding: 10px 10px 10px 10px}
11 #schema {margin: 0 auto; width: 980px; border: 1px solid #f00 !important; padding: 10px 10px 10px 10px}
12 #content {border: 1px solid #1cc; margin-top: 5px; margin-bottom: 5px}
12 #content {border: 1px solid #1cc; margin-top: 5px; margin-bottom: 5px}
13 #content #leftcolumn {float: left;border: 1px solid #c55; width: 150px; }
13 #content #leftcolumn {float: left;border: 2px solid #f00 !important; width: 160px; }
14 #content #maincolumn {float: left; border: 1px solid #000; width: 800px; padding-left: 20px;}
14 #content #maincolumn {float: left; border: 1px solid #000 !important; width: 780px; margin: 0; padding: 0px 10px }
15 footer {border: 1px solid #200; font-size: 0.9em; height: 30px; text-align: center; line-height: 20px}
15 footer {border: 1px solid #200; font-size: 0.9em; height: 30px; text-align: center; line-height: 20px}
16
16
17 .cleardivs {clear: both; border: 0px solid #400; height: 0px}
17 .cleardivs {clear: both; border: 0px solid #400; height: 0px}
18 /****************************************************************************************/
18 /****************************************************************************************/
19 /****** ESTILOS GENERALES *****************/
19 /****** ESTILOS GENERALES *****************/
20 /****************************************************************************************/
20 /****************************************************************************************/
21 .mnu{ height: 22px; border: 0px solid #c55 !important;}
21 .mnu{ height: 22px; border: 0px solid #c55 !important;}
22 .mnu li{ display:inline;}
22 .mnu li{ display:inline;}
23 .MnuVertical, .MnuHorizontal { font-family: 'Droid Sans', sans-serif; font-size: 1.2em; font-style: italic; text-shadow: 2px 2px #eee}
23 .MnuVertical, .MnuHorizontal { font-family: 'Droid Sans', sans-serif; font-size: 1.2em; font-style: italic; text-shadow: 2px 2px #eee}
24 .MnuHorizontal ul{ list-style: none; list-style-type: none; margin: 0;}
24 .MnuHorizontal ul{ list-style: none; list-style-type: none; margin: 0;}
25
25
26 /*.MnuHorizontal{ display: -webkit-box; -webkit-box-orient:horizontal;}*/
26 /*.MnuHorizontal{ display: -webkit-box; -webkit-box-orient:horizontal;}*/
27 /*.MnuHorizontal a{ display:block; padding:10px; -webkit-box-flex:1; text-align:center; }*/
27 /*.MnuHorizontal a{ display:block; padding:10px; -webkit-box-flex:1; text-align:center; }*/
28
28
29 /****************************************************************************************/
29 /****************************************************************************************/
30 /****** MENU DE NAVEGACION DE PERFILES **********************************/
30 /****** MENU DE NAVEGACION DE PERFILES **********************************/
31 /****************************************************************************************/
31 /****************************************************************************************/
32 #content #infoProfiles {border: 1px solid #d00 !important; width: 140px; margin: 0px; padding-top: 2px; padding-bottom: 2px}
32 #content #infoProfiles {border: 1px solid #1cc !important; width: 100%; margin: 0px; padding-top: 2px; padding-bottom: 2px}
33 .lblInfo {padding-left: 12px; line-height: 20px;}
33 .lblInfo {line-height: 20px; padding: 10px 10px 10px 12px; margin: 10px 0}
34 #infoProfiles select {padding-left: 12px; line-height: 20px;margin-left: 12px}
34 #infoProfiles select {padding-left: 0px; line-height: 25px;margin-left: 12px; font-family: 'Droid Sans', sans-serif;
35 font-size: 11px; letter-spacing: 0.029em;}
35 #content nav {border: 0px solid #c55 !important; margin: 0px;}
36 #content nav {border: 0px solid #c55 !important; margin: 0px;}
36
37
37 #leftcolumn #mnuProfiles{ margin: 5px 0px; border: 0px solid #1494F6 !important; }
38 #leftcolumn #mnuProfiles{ margin: 5px 0px; border: 0px solid #1494F6 !important; }
38 #mnuProfiles ul{list-style: none; list-style-type: none; margin: 0; padding-left: 20px; border: 0px solid #f00 !important}
39 #mnuProfiles ul{list-style: none; list-style-type: none; margin: 0; padding-left: 20px; border: 0px solid #f00 !important}
39 #mnuProfiles li{ width: 80px; padding: 2px; border: 0px solid #c55 !important; line-height: 22px}
40 #mnuProfiles li{ width: 80px; padding: 2px; border: 0px solid #c55 !important; line-height: 22px}
40 #mnuProfiles a{ font-weight: normal; color: #1494F6; display: block; border: 0px solid #1cc !important; text-align: left}
41 #mnuProfiles a{ font-weight: normal; color: #1494F6; display: block; border: 0px solid #1cc !important; text-align: left}
41
42
42 /****************************************************************************************/
43 /****************************************************************************************/
43 /******** FORMULARIO DE PERFILES *************************************/
44 /******** FORMULARIO DE PERFILES *************************************/
44 /****************************************************************************************/
45 /****************************************************************************************/
45 #divProfile { border: 0px solid #dff; margin: 10px 0px; padding: 10px 10px; width: 500px }
46 #divProfile { border: 0px solid #dff; margin: 10px 0px; padding: 10px 10px; width: 500px }
46 .flsAntenna { margin: 0; width: 750px; padding: 5px }
47 .flsAntenna { margin: 0; width: 750px; padding: 5px }
47 #divPattern textarea,input[type=text],label{ font-family: "Open Sans"; font-size: inherit; }
48 #divPattern textarea,input[type=text],label{ font-family: "Open Sans"; font-size: inherit; }
48 #divPattern textarea {resize: none; overflow: hidden}
49 #divPattern textarea {resize: none; overflow: hidden}
49 .antenna{ border: 1px solid #1494F6 !important; padding: 5px}
50 .antenna{ border: 1px solid #1494F6 !important; padding: 5px}
50 .infoAntenna{ border: 0px solid #f00 !important; width: 480px; float: left}
51 .infoAntenna{ border: 0px solid #f00 !important; width: 480px; float: left}
51 .overJRO{ border: 0px solid #1cc !important; width: 250px; float: left; margin: 0px 5px}
52 .overJRO{ border: 0px solid #1cc !important; width: 250px; float: left; margin: 0px 5px}
52 .divAntenna { float: left; margin: 10px; border: 0px solid #fcc !important; width: 190px }
53 .divAntenna { float: left; margin: 10px; border: 0px solid #fcc !important; width: 190px }
53 .divAntenna label{ display: block }
54 .divAntenna label{ display: block }
54 .txtAntenna { width: 175px; max-width: 180px; height: 160px; max-height: 165px; background: #fdfdfb; padding: 4px;
55 .txtAntenna { width: 175px; max-width: 180px; height: 160px; max-height: 165px; background: #fdfdfb; padding: 4px;
55 border: 2px solid #eee !important; /*font-family: "Ubuntu"; font-size: inherit;*/
56 border: 2px solid #eee !important; /*font-family: "Ubuntu"; font-size: inherit;*/
56 text-align: justify; margin: 0 auto; line-height: 20px}
57 text-align: justify; margin: 0 auto; line-height: 20px}
57 .divAntenna p{ width: 175px; max-width: 180px; height: 160px; max-height: 165px; background: #fdfdfb; padding: 2px;
58 .divAntenna p{ width: 175px; max-width: 180px; height: 160px; max-height: 165px; background: #fdfdfb; padding: 2px;
58 border: 1px solid #eee !important; font-family: "Ubuntu"; font-size: inherit;
59 border: 1px solid #eee !important; font-family: "Ubuntu"; font-size: inherit;
59 text-align: justify; margin: 0 auto; line-height: 20px}
60 text-align: justify; margin: 0 auto; line-height: 20px}
60
61
61 .divTx { display: block; float: left; margin: 10px; height: 150px }
62 .divTx { display: block; float: left; margin: 10px; height: 150px }
62 .divTx label{ display: block }
63 .divTx label{ display: block }
63 .divTx textarea{ width: 135px; max-width: 135px; height: 135px; max-height: 140px; text-align: justify }
64 .divTx textarea{ width: 135px; max-width: 135px; height: 135px; max-height: 140px; text-align: justify }
64 .divTx p{ width: 100px; max-width: 105px; height: 160px; max-height: 165px; background: #fdfdfb; padding: 2px;
65 .divTx p{ width: 100px; max-width: 105px; height: 160px; max-height: 165px; background: #fdfdfb; padding: 2px;
65 border: 1px solid #eee !important; font-family: "Ubuntu"; font-size: inherit;
66 border: 1px solid #eee !important; font-family: "Ubuntu"; font-size: inherit;
66 text-align: justify; margin: 0 auto; line-height: 20px;}
67 text-align: justify; margin: 0 auto; line-height: 20px;}
67
68
68 .divUes { display: block; margin: 10px}
69 .divUes { display: block; margin: 10px}
69 .divUes input[type=text] { width: 240px; max-width: 240px; font-family: "Ubuntu"; font-size: inherit;}
70 .divUes input[type=text] { width: 240px; max-width: 240px; font-family: "Ubuntu"; font-size: inherit;}
70
71
71 .overJRO img{width: 200; height: 145px; text-align: center; vertical-align: middle; margin: 25px 5px 5px 5px;
72 .overJRO img{width: 200; height: 145px; text-align: center; vertical-align: middle; margin: 25px 5px 5px 5px;
72 display: block; background: #fdfdfb; border: 1px solid #eee !important;}
73 display: block; background: #fdfdfb; border: 1px solid #eee !important;}
73 .overJRO a{ text-align: center; margin: 0 auto; display: block}
74 .overJRO a{ text-align: center; margin: 0 auto; display: block}
74
75
75 /****************************************************************************************/
76 /****************************************************************************************/
76 /****** MENU DE NAVEGACION DE PATRONES **********************************/
77 /****** MENU DE NAVEGACION DE PATRONES **********************************/
77 /****************************************************************************************/
78 /****************************************************************************************/
78 #divMnuPattern{ width: 280px; height: 25px; display: block; border: 0px solid #1cc !important; float: left; margin-left: 500px}
79 #divMnuPattern{ width: 280px; height: 25px; display: block; border: 0px solid #1cc !important; float: left; margin-left: 500px}
79 #divMnuPattern li{ float: left; display: block; width: 60px; border: 0px solid #2cc !important}
80 #divMnuPattern li{ float: left; display: block; width: 60px; border: 0px solid #2cc !important}
80 #divMnuPattern a{ display: block; line-height: 22px; text-decoration: none; padding: 0px 5px;
81 #divMnuPattern a{ display: block; line-height: 22px; text-decoration: none; padding: 0px 5px;
81 border-bottom: 1px solid #1494F6 !important; margin: 0px 2px; text-align: center; color: #1494F6
82 border-bottom: 1px solid #1494F6 !important; margin: 0px 2px; text-align: center; color: #1494F6
82 }
83 }
83 #infoPattern{ display: block; border: 1px solid #1494f6 !important, margin: 5px 2px; }
84 #infoPattern{ display: block; border: 1px solid #1494f6 !important, margin: 5px 2px; }
84
85
85 #navPatterns{ margin: 5px auto; border: 0px solid #d00 !important; width: 700px; height: 30px;
86 #navPatterns{ margin: 5px auto; border: 0px solid #d00 !important; width: 700px; height: 30px;
86 font-family: 'Ubuntu', sans-serif; font-size: 14px; padding: 10px 0px}
87 font-family: 'Ubuntu', sans-serif; font-size: 14px; padding: 10px 0px}
87 #navPatternList{ margin: 0px auto; border: 1px solid #ecc !important}
88 #navPatternList{ margin: 0px auto; border: 1px solid #ecc !important}
88 #navPatternList ul{ list-style: none; list-style-type: none; margin: 0;}
89 #navPatternList ul{ list-style: none; list-style-type: none; margin: 0;}
89 #navPatternList ul li{ float: left; width: 50px; border: 1px solid #eee !important; }
90 #navPatternList ul li{ float: left; width: 50px; border: 1px solid #eee !important; }
90 #navPatternList a{ width: 50px; border: 0px solid #1cc !important; display: block; text-align: center; line-height: 30px; padding: 1px 0px}
91 #navPatternList a{ width: 50px; border: 0px solid #1cc !important; display: block; text-align: center; line-height: 30px; padding: 1px 0px}
91 .lnkPattern{ background-color: #ccc !important; color: #eee;}
92 .lnkPattern{ background-color: #ccc !important; color: #eee;}
92 .lnkPatternSelected{ background-color: #2cc !important; color: #fff;}
93 .lnkPatternSelected{ background-color: #2cc !important; color: #fff;}
93
94
94 .divListofPatterns{ width: 650px; display: block; border: 1px solid #1cc !important; margin: 0 auto}
95 .divListofPatterns{ width: 650px; display: block; border: 1px solid #1cc !important; margin: 0 auto}
95 .divPattern{ width: 600px; display: block; border: 1px solid #f00 !important; margin: 2px auto; }
96 .divPattern{ width: 600px; display: block; border: 1px solid #f00 !important; margin: 2px auto; }
96
97
@@ -1,93 +1,109
1 {% extends "abscontrol/index.html" %}
1 {% extends "abscontrol/index.html" %}
2 {% block title %}ABS CONTROL:::PROFILE:::{{ objProfile.name }}{% endblock %}
2 {% block title %}ABS CONTROL:::PROFILE:::{{ objProfile.name }}{% endblock %}
3 {% block scripting %}
3 {% block scripting %}
4 <script src="/static/static/js/patterns.js"></script>
4 <script src="/static/static/js/patterns.js"></script>
5 {% endblock %}
6 {% block mnu_profile %}
7 <nav class="MnuVertical" id="mnuProfiles">
8 <ul>
9 <li><a href="/abscontrol/new">New</a></li>
10 <li><a href="#">Save</a></li>
11 <li><a href="#">Save as</a></li>
12 <li><a href="/abscontrol/import">Import</a></li>
13 {% if objProfile %}
14 <li><a href="#" id="lnkExport" alt="{{ objProfile.id }}">Export</a></li>
15 {% endif %}
16 </ul>
17 </nav>
5 {% endblock %}
18 {% endblock %}
6 {% block maincolumn%}
19 {% block maincolumn%}
7 <div id="maincolumn">
20 <div id="maincolumn">
8 <div id="divProfile">
21 <div id="divProfile">
9 <label for="lblName">Profile:</label>
22 <label for="lblName">Profile:</label>
10 <label for="lblProfile">{{ objProfile.name }}</label>
23 <label for="lblProfile">{{ objProfile.name }}</label>
11 </div>
24 </div>
12 <div id="divPattern">
25 <div id="divPattern">
13 {% block mnuPattern %}
26 {% block mnuPattern %}
14 <div class="divMenu" id="divMnuPattern">
27 <div class="divMenu" id="divMnuPattern">
15 <nav class="MnuHorizontal">
28 <nav class="MnuHorizontal">
16 <ul class="mnu" id="mnuPattern">
29 <ul class="mnu" id="mnuPattern">
30 {% if lsPatterns|length < 10 %}
17 <li><a href="/abscontrol/{{ objProfile.id }}/add">Add</a></li>
31 <li><a href="/abscontrol/{{ objProfile.id }}/add">Add</a></li>
18 <li><a href="/abscontrol/{{ objProfile.id }}/edit/{{ patternChoosen.id }}">Edit</a></li>
32 {% endif %}
33 <li><a href="#" class="" id="lnkSave">Save</a></li>
19 {% if lsPatterns|length > 1 %}
34 {% if lsPatterns|length > 1 %}
20 <li><a href="/abscontrol/{{ objProfile.id }}/delete/{{ patternChoosen.id }}">Delete</a></li>
35 <li><a href="/abscontrol/{{ objProfile.id }}/delete/{{ patternChoosen.id }}">Delete</a></li>
21 {% endif %}
36 {% endif %}
22 <li><a href="#">Apply</a></li>
23 </ul>
37 </ul>
24 </nav>
38 </nav>
25 </div>
39 </div>
26 <div class="cleardivs"></div>
40 <div class="cleardivs"></div>
27 {% endblock %}
41 {% endblock %}
28 {% block pattern %}
42 {% block pattern %}
29 <div id="infoPattern">
43 <div id="infoPattern">
30 {% if patternChoosen %}
44 {% if patternChoosen %}
31 <div id="navPatterns">
45 <div id="navPatterns">
32 <nav class="" id="navPatternList">
46 <nav class="" id="navPatternList">
33 <ul>
47 <ul>
34 {% for element in lsPatterns %}
48 {% for element in lsPatterns %}
35 {% if patternChoosen.id == element.id %}
49 {% if patternChoosen.id == element.id %}
36 <li><a href="/abscontrol/{{ objProfile.id }}/view/{{ element.id }}" class="lnkPatternSelected">{{ element.value }}</a></li>
50 <li><a href="/abscontrol/{{ objProfile.id }}/edit/{{ element.id }}" class="lnkPatternSelected">{{ element.value }}</a></li>
37 {% else %}
51 {% else %}
38 <li><a href="/abscontrol/{{ objProfile.id }}/view/{{ element.id }}" class="lnkPattern">{{ element.value }}</a></li>
52 <li><a href="/abscontrol/{{ objProfile.id }}/edit/{{ element.id }}" class="lnkPattern">{{ element.value }}</a></li>
39 {% endif %}
53 {% endif %}
40 {% endfor %}
54 {% endfor %}
41 </ul>
55 </ul>
42 </nav>
56 </nav>
43 </div>
57 </div>
44 {% endif %}
58 {% endif %}
45 <div id="antennaUp">
59 <div id="antennaUp">
46 <fieldset class="flsAntenna">
60 <fieldset class="flsAntenna">
47 <legend>UP</legend>
61 <legend>UP</legend>
48 <div class="divAntenna">
62 <div class="divAntenna">
49 <label for="lblAntenna">Antenna</label>
63 <label for="lblAntenna">Antenna</label>
50 <p>{{ antennaUp.value }}</p>
64 <textarea name="txtAntennaUp" class="txtAntenna" cols="38" rows="8">{{ antennaUp.value }}</textarea>
51 </div>
65 </div>
52 <div class="divTx">
66 <div class="divTx">
53 <label for="lblTx">Tx</label>
67 <label for="lblTx">Tx</label>
54 <p>{{ antennaUp.tx }}</p>
68 <textarea name="txtTxUp" class="txtTR" cols="20" rows="8">{{ antennaUp.tx }}</textarea>
55 </div>
69 </div>
56 <div class="divTx">
70 <div class="divTx">
57 <label for="lblRx">Rx</label>
71 <label for="lblRx">Rx</label>
58 <p>{{ antennaUp.rx }}</p>
72 <textarea name="txtRxUp" class="txtTR" cols="20" rows="8">{{ antennaUp.rx }}</textarea>
59 </div>
73 </div>
60 <div class="cleardivs"></div>
74 <div class="cleardivs"></div>
61 <div class="divUes">
75 <div class="divUes">
62 <label for="lblUes">Ues:</label>
76 <label for="lblUes">Ues:</label>
63 <label for="lblAntennaUpUes">{{ antennaUp.ues }}</label>
77 <input type="text" name="txtUesUp" value="{{ antennaUp.ues }}" />
64 </div>
78 </div>
79 <input type="hidden" name="txtAntennaUpId" value="{{ antennaUp.id }}" />
65 </fieldset>
80 </fieldset>
66 </div>
81 </div>
67 <div id="antennaDown">
82 <div id="antennaDown">
68 <fieldset class="flsAntenna">
83 <fieldset class="flsAntenna">
69 <legend>DOWN</legend>
84 <legend>DOWN</legend>
70 <div class="divAntenna">
85 <div class="divAntenna">
71 <label for="lblAntenna">Antenna</label>
86 <label for="lblAntenna">Antenna</label>
72 <p>{{ antennaDown.value }}</textarea>
87 <textarea name="txtAntennaDown" class="txtAntenna" cols="38" rows="8">{{ antennaDown.value }}</textarea>
73 </div>
88 </div>
74 <div class="divTx">
89 <div class="divTx">
75 <label for="lblTx">Tx</label>
90 <label for="lblTx">Tx</label>
76 <p>{{ antennaDown.tx }}</p>
91 <textarea name="txtTxDown" class="txtTR" cols="20" rows="8">{{ antennaDown.tx }}</textarea>
77 </div>
92 </div>
78 <div class="divTx">
93 <div class="divTx">
79 <label for="lblRx">Rx</label>
94 <label for="lblRx">Rx</label>
80 <p>{{ antennaDown.rx }}</p>
95 <textarea name="txtRxDown" class="txtTR" cols="20" rows="8">{{ antennaDown.rx }}</textarea>
81 </div>
96 </div>
82 <div class="cleardivs"></div>
97 <div class="cleardivs"></div>
83 <div class="divUes">
98 <div class="divUes">
84 <label for="lblUes">Ues:</label>
99 <label for="lblUes">Ues:</label>
85 <label for="lblAntennaDownUes">{{ antennaDown.ues }}</label>
100 <input type="text" name="txtUesDown" value="{{ antennaDown.ues }}" />
86 </div>
101 </div>
102 <input type="hidden" name="txtAntennaDownId" value="{{ antennaDown.id }}" />
87 </fieldset>
103 </fieldset>
88 </div>
104 </div>
89 </div>
105 </div>
90 {% endblock %}
106 {% endblock %}
91 </div>
107 </div>
92 </div>
108 </div>
93 {% endblock %}
109 {% endblock %}
@@ -1,82 +1,85
1 {% extends "abscontrol/edit.html" %}
1 {% extends "abscontrol/edit.html" %}
2
2
3 {% block mnuPattern %}
3 {% block mnuPattern %}
4 <div class="divMenu" id="divMnuPattern">
4 <div class="divMenu" id="divMnuPattern">
5 <nav class="MnuHorizontal">
5 <nav class="MnuHorizontal">
6 <ul class="mnu" id="mnuPattern">
6 <ul class="mnu" id="mnuPattern">
7 {% if lsPatterns|length < 10 %}
7 <li><a href="#" id="lnkAdd">Add</a></li>
8 <li><a href="#" id="lnkAdd">Add</a></li>
9 {% endif %}
8 <li><a href="#" id="lnkSave">Save</a></li>
10 <li><a href="#" id="lnkSave">Save</a></li>
9 <li><a href="#" id="lnkCancel">Delete</a></li>
11 <li><a href="#" id="lnkCancel">Delete</a></li>
10 </ul>
12 </ul>
11 </nav>
13 </nav>
12 </div>
14 </div>
13 <div class="cleardivs"></div>
15 <div class="cleardivs"></div>
14 {% endblock %}
16 {% endblock %}
15 {% block pattern %}
17 {% block pattern %}
16 <div id="infoPattern">
18 <div id="infoPattern">
17 <div id="navPatterns">
19 <div id="navPatterns">
18 <nav class="" id="navPatternList">
20 <nav class="" id="navPatternList">
19 <ul>
21 <ul>
20 {% for element in lsPatterns %}
22 {% for element in lsPatterns %}
21 {% if patternChoosen.id == element.id %}
23 {% if patternChoosen.id == element.id %}
22 <li><a href="/abscontrol/{{ objProfile.id }}/view/{{ element.id }}" class="lnkPatternSelected">{{ element.value }}</a></li>
24 <li><a href="/abscontrol/{{ objProfile.id }}/edit/{{ element.id }}" class="lnkPatternSelected">{{ element.value }}</a></li>
23 {% else %}
25 {% else %}
24 <li><a href="/abscontrol/{{ objProfile.id }}/view/{{ element.id }}" class="lnkPattern">{{ element.value }}</a></li>
26 <li><a href="/abscontrol/{{ objProfile.id }}/edit/{{ element.id }}" class="lnkPattern">{{ element.value }}</a></li>
25 {% endif %}
27 {% endif %}
26 {% endfor %}
28 {% endfor %}
27 </ul>
29 </ul>
28 </nav>
30 </nav>
29 </div>
31 </div>
30 <div class="cleardivs"></div>
32 <div class="cleardivs"></div>
31 <form action="/abscontrol/{{ objProfile.id }}/save/" id="frmPattern" method="post">
33 <form action="/abscontrol/{{ objProfile.id }}/save/" id="frmPattern" method="post">
32 <div id="antennaUp">
34 <div id="antennaUp">
33 <fieldset class="flsAntenna">
35 <fieldset class="flsAntenna">
34 <legend>UP</legend>
36 <legend>UP</legend>
35 <div class="divAntenna">
37 <div class="divAntenna">
36 <label for="lblAntenna">Antenna</label>
38 <label for="lblAntenna">Antenna</label>
37 <textarea name="txtAntennaUp" class="txtAntenna" cols="38" rows="8">{{ antennaUp.value }}</textarea>
39 <textarea name="txtAntennaUp" class="txtAntenna" cols="38" rows="8">{{ antennaUp.value }}</textarea>
38 </div>
40 </div>
39 <div class="divTx">
41 <div class="divTx">
40 <label for="lblTx">Tx</label>
42 <label for="lblTx">Tx</label>
41 <textarea name="txtTxUp" class="txtTR" cols="20" rows="8">{{ antennaUp.tx }}</textarea>
43 <textarea name="txtTxUp" class="txtTR" cols="20" rows="8">{{ antennaUp.tx }}</textarea>
42 </div>
44 </div>
43 <div class="divTx">
45 <div class="divTx">
44 <label for="lblRx">Rx</label>
46 <label for="lblRx">Rx</label>
45 <textarea name="txtRxUp" class="txtTR" cols="20" rows="8">{{ antennaUp.rx }}</textarea>
47 <textarea name="txtRxUp" class="txtTR" cols="20" rows="8">{{ antennaUp.rx }}</textarea>
46 </div>
48 </div>
47 <div class="cleardivs"></div>
49 <div class="cleardivs"></div>
48 <div class="divUes">
50 <div class="divUes">
49 <label for="lblUes">Ues:</label>
51 <label for="lblUes">Ues:</label>
50 <input type="text" name="txtUesUp" value="{{ antennaUp.ues }}" />
52 <input type="text" name="txtUesUp" value="{{ antennaUp.ues }}" />
51 </div>
53 </div>
52 <input type="hidden" name="txtAntennaUpId" value="{{ antennaUp.id }}" />
54 <input type="hidden" name="txtAntennaUpId" value="{{ antennaUp.id }}" />
53 </fieldset>
55 </fieldset>
54 </div>
56 </div>
55 <div id="antennaDown">
57 <div id="antennaDown">
56 <fieldset class="flsAntenna">
58 <fieldset class="flsAntenna">
57 <legend>DOWN</legend>
59 <legend>DOWN</legend>
58 <div class="divAntenna">
60 <div class="divAntenna">
59 <label for="lblAntenna">Antenna</label>
61 <label for="lblAntenna">Antenna</label>
60 <textarea name="txtAntennaDown" class="txtAntenna" cols="38" rows="8">{{ antennaDown.value }}</textarea>
62 <textarea name="txtAntennaDown" class="txtAntenna" cols="38" rows="8">{{ antennaDown.value }}</textarea>
61 </div>
63 </div>
62 <div class="divTx">
64 <div class="divTx">
63 <label for="lblTx">Tx</label>
65 <label for="lblTx">Tx</label>
64 <textarea name="txtTxDown" class="txtTR" cols="20" rows="8">{{ antennaDown.tx }}</textarea>
66 <textarea name="txtTxDown" class="txtTR" cols="20" rows="8">{{ antennaDown.tx }}</textarea>
65 </div>
67 </div>
66 <div class="divTx">
68 <div class="divTx">
67 <label for="lblRx">Rx</label>
69 <label for="lblRx">Rx</label>
68 <textarea name="txtRxDown" class="txtTR" cols="20" rows="8">{{ antennaDown.rx }}</textarea>
70 <textarea name="txtRxDown" class="txtTR" cols="20" rows="8">{{ antennaDown.rx }}</textarea>
69 </div>
71 </div>
70 <div class="cleardivs"></div>
72 <div class="cleardivs"></div>
71 <div class="divUes">
73 <div class="divUes">
72 <label for="lblUes">Ues:</label>
74 <label for="lblUes">Ues:</label>
73 <input type="text" name="txtUesDown" value="{{ antennaDown.ues }}" />
75 <input type="text" name="txtUesDown" value="{{ antennaDown.ues }}" />
74 </div>
76 </div>
75 <input type="hidden" name="txtAntennaDownId" value="{{ antennaDown.id }}" />
77 <input type="hidden" name="txtAntennaDownId" value="{{ antennaDown.id }}" />
76 </fieldset>
78 </fieldset>
77 </div>
79 </div>
78 <input type="hidden" name="pattern_id" id="pattern_id" value="{{ patternChoosen.id }}" />
80 <input type="hidden" name="pattern_id" id="pattern_id" value="{{ patternChoosen.id }}" />
79 <input type="hidden" name="profile_id" id="profile_id" value="{{ objProfile.id }}" />
81 <input type="hidden" name="profile_id" id="profile_id" value="{{ objProfile.id }}" />
82 <input type="hidden" name="mode" value="e">
80 </form>
83 </form>
81 </div>
84 </div>
82 {% endblock %} No newline at end of file
85 {% endblock %}
@@ -1,104 +1,114
1 {% extends "abscontrol/index.html" %}
1 {% extends "abscontrol/index.html" %}
2 {% block title %}ABS CONTROL:::PROFILE:::{{ objProfile.name }}{% endblock %}
2 {% block title %}ABS CONTROL:::PROFILE:::{{ objProfile.name }}{% endblock %}
3
3
4 {% block maincolumn%}
4 {% block maincolumn%}
5 <div id="maincolumn">
5 <div id="maincolumn">
6 <div id="divProfile">
6 <div id="divProfile">
7 <label for="lblName">Profile:</label>
7 <label for="lblName">Profile:</label>
8 <label for="lblProfile">{{ objProfile.name }}</label>
8 <label for="lblProfile">{{ objProfile.name }}</label>
9 </div>
9 </div>
10 <div id="divPattern">
10 <div id="divPattern">
11 {% block mnuPattern %}
12 <div class="divMenu" id="divMnuPattern">
13 <nav class="MnuHorizontal">
14 <ul class="mnu" id="mnuPattern">
15 <li><a href="#">Apply</a></li>
16 </ul>
17 </nav>
18 </div>
19 <div class="cleardivs"></div>
20 {% endblock %}
11 <div id="infoPattern">
21 <div id="infoPattern">
12 {% if patternChoosen %}
22 {% if patternChoosen %}
13 <div id="navPatterns">
23 <div id="navPatterns">
14 <nav class="" id="navPatternList">
24 <nav class="" id="navPatternList">
15 <ul>
25 <ul>
16 {% for element in lsPatterns %}
26 {% for element in lsPatterns %}
17 {% if patternChoosen.id == element.id %}
27 {% if patternChoosen.id == element.id %}
18 <li><a href="/abscontrol/{{ objProfile.id }}/view/{{ element.id }}" class="lnkPatternSelected">{{ element.value }}</a></li>
28 <li><a href="/abscontrol/{{ objProfile.id }}/view/{{ element.id }}/" class="lnkPatternSelected">{{ element.value }}</a></li>
19 {% else %}
29 {% else %}
20 <li><a href="/abscontrol/{{ objProfile.id }}/view/{{ element.id }}" class="lnkPattern">{{ element.value }}</a></li>
30 <li><a href="/abscontrol/{{ objProfile.id }}/view/{{ element.id }}/" class="lnkPattern">{{ element.value }}</a></li>
21 {% endif %}
31 {% endif %}
22 {% endfor %}
32 {% endfor %}
23 </ul>
33 </ul>
24 </nav>
34 </nav>
25 </div>
35 </div>
26 {% endif %}
36 {% endif %}
27 <div id="antennaUp" class="antenna">
37 <div id="antennaUp" class="antenna">
28 <fieldset class="flsAntenna">
38 <fieldset class="flsAntenna">
29 <legend>UP</legend>
39 <legend>UP</legend>
30 <div class="infoAntenna">
40 <div class="infoAntenna">
31 <div class="divAntenna">
41 <div class="divAntenna">
32 <label for="lblAntenna">Antenna</label>
42 <label for="lblAntenna">Antenna</label>
33 <p>{{ antennaUp.value }}</p>
43 <p>{{ antennaUp.value }}</p>
34 </div>
44 </div>
35 <div class="divTx">
45 <div class="divTx">
36 <label for="lblTx">Tx</label>
46 <label for="lblTx">Tx</label>
37 <p>{{ antennaUp.tx }}</p>
47 <p>{{ antennaUp.tx }}</p>
38 </div>
48 </div>
39 <div class="divTx">
49 <div class="divTx">
40 <label for="lblRx">Rx</label>
50 <label for="lblRx">Rx</label>
41 <p>{{ antennaUp.rx }}</p>
51 <p>{{ antennaUp.rx }}</p>
42 </div>
52 </div>
43 <div class="cleardivs"></div>
53 <div class="cleardivs"></div>
44 <div class="divUes">
54 <div class="divUes">
45 <label for="lblUes">Ues:</label>
55 <label for="lblUes">Ues:</label>
46 <label for="lblAntennaUpUes">{{ antennaUp.ues }}</label>
56 <label for="lblAntennaUpUes">{{ antennaUp.ues }}</label>
47 {% if antennaUp.only_rx == 0 %}
57 {% if antennaUp.only_rx == 0 %}
48 <input type="checkbox" name="chkOnlyRxUp" value="" />
58 <input type="checkbox" name="chkOnlyRxUp" value="" />
49 {% else %}
59 {% else %}
50 <input type="checkbox" name="chkOnlyRxUp" value="" checked="checked"/>
60 <input type="checkbox" name="chkOnlyRxUp" value="" checked="checked"/>
51 {% endif %}
61 {% endif %}
52 <label for="lblOnlyRx">Only RX</label>
62 <label for="lblOnlyRx">Only RX</label>
53 </div>
63 </div>
54 </div>
64 </div>
55 <div class="overJRO">
65 <div class="overJRO">
56 <img />
66 <img />
57 <a href="#" class="activeOverJRO" id="Up">Preview</a>
67 <a href="#" class="activeOverJRO" id="Up">Preview</a>
58 </div>
68 </div>
59 <div class="cleardivs"></div>
69 <div class="cleardivs"></div>
60 </fieldset>
70 </fieldset>
61 </div>
71 </div>
62 <div id="antennaDown" class="antenna">
72 <div id="antennaDown" class="antenna">
63 <fieldset class="flsAntenna">
73 <fieldset class="flsAntenna">
64 <legend>DOWN</legend>
74 <legend>DOWN</legend>
65 <div class="infoAntenna">
75 <div class="infoAntenna">
66 <div class="divAntenna">
76 <div class="divAntenna">
67 <label for="lblAntenna">Antenna</label>
77 <label for="lblAntenna">Antenna</label>
68 <p>{{ antennaDown.value }}</p>
78 <p>{{ antennaDown.value }}</p>
69 </div>
79 </div>
70 <div class="divTx">
80 <div class="divTx">
71 <label for="lblTx">Tx</label>
81 <label for="lblTx">Tx</label>
72 <p>{{ antennaDown.tx }}</p>
82 <p>{{ antennaDown.tx }}</p>
73 </div>
83 </div>
74 <div class="divTx">
84 <div class="divTx">
75 <label for="lblRx">Rx</label>
85 <label for="lblRx">Rx</label>
76 <p>{{ antennaDown.rx }}</p>
86 <p>{{ antennaDown.rx }}</p>
77 </div>
87 </div>
78 <div class="cleardivs"></div>
88 <div class="cleardivs"></div>
79 <div class="divUes">
89 <div class="divUes">
80 <label for="lblUes">Ues:</label>
90 <label for="lblUes">Ues:</label>
81 <label for="lblAntennaDownUes">{{ antennaDown.ues }}</label>
91 <label for="lblAntennaDownUes">{{ antennaDown.ues }}</label>
82 {% if antennaDown.only_rx == 0 %}
92 {% if antennaDown.only_rx == 0 %}
83 <input type="checkbox" name="chkOnlyRxDown" value="" />
93 <input type="checkbox" name="chkOnlyRxDown" value="" />
84 {% else %}
94 {% else %}
85 <input type="checkbox" name="chkOnlyRxDown" value="" checked="checked"/>
95 <input type="checkbox" name="chkOnlyRxDown" value="" checked="checked"/>
86 {% endif %}
96 {% endif %}
87 <label for="lblOnlyRx">Only RX</label>
97 <label for="lblOnlyRx">Only RX</label>
88 </div>
98 </div>
89 </div>
99 </div>
90 <div class="overJRO">
100 <div class="overJRO">
91 <img />
101 <img />
92 <a href="#" class="activeOverJRO" id="Down">Preview</a>
102 <a href="#" class="activeOverJRO" id="Down">Preview</a>
93 </div>
103 </div>
94 <div class="cleardivs"></div>
104 <div class="cleardivs"></div>
95 </fieldset>
105 </fieldset>
96 </div>
106 </div>
97 </div>
107 </div>
98 <input type="hidden" name="txtAntennaUpId" value="{{ antennaUp.id }}"/>
108 <input type="hidden" name="txtAntennaUpId" value="{{ antennaUp.id }}"/>
99 <input type="hidden" name="txtAntennaDownId" value="{{ antennaDown.id }}"/>
109 <input type="hidden" name="txtAntennaDownId" value="{{ antennaDown.id }}"/>
100 <input type="hidden" name="txtPatternId" value="{{ patternChoosen.id }}"/>
110 <input type="hidden" name="txtPatternId" value="{{ patternChoosen.id }}"/>
101 <input type="hidden" name="txtProfileId" value="{{ objProfile.id }}"/>
111 <input type="hidden" name="txtProfileId" value="{{ objProfile.id }}"/>
102 </div>
112 </div>
103 </div>
113 </div>
104 {% endblock %}
114 {% endblock %}
@@ -1,81 +1,67
1 {% extends "abscontrol/edit.html" %}
1 {% extends "abscontrol/view.html" %}
2
2
3 {% block mnuPattern %}
4 <div class="divMenu" id="divMnuPattern">
5 <nav class="MnuHorizontal">
6 <ul class="mnu" id="mnuPattern">
7 <li><a href="/abscontrol/{{ objProfile.id }}/edit/{{ patternChoosen.id }}">Edit</a></li>
8 {% if lsPatterns|length > 1 %}
9 <li><a href="/abscontrol/{{ objProfile.id }}/delete/{{ patternChoosen.id }}">Delete</a></li>
10 {% endif %}
11 <li><a href="#">Apply</a></li>
12 </ul>
13 </nav>
14 </div>
15 <div class="cleardivs"></div>
16 {% endblock %}
17 {% block pattern %}
3 {% block pattern %}
18 <div id="infoPattern">
4 <div id="infoPattern">
19 {% if patternChoosen %}
5 {% if patternChoosen %}
20 <div id="navPatterns">
6 <div id="navPatterns">
21 <nav class="" id="navPatternList">
7 <nav class="" id="navPatternList">
22 <ul>
8 <ul>
23 {% for element in lsPatterns %}
9 {% for element in lsPatterns %}
24 {% if patternChoosen.id == element.id %}
10 {% if patternChoosen.id == element.id %}
25 <li><a href="/abscontrol/{{ objProfile.id }}/view/{{ element.id }}" class="lnkPatternSelected">{{ element.value }}</a></li>
11 <li><a href="/abscontrol/{{ objProfile.id }}/view/{{ element.id }}" class="lnkPatternSelected">{{ element.value }}</a></li>
26 {% else %}
12 {% else %}
27 <li><a href="/abscontrol/{{ objProfile.id }}/view/{{ element.id }}" class="lnkPattern">{{ element.value }}</a></li>
13 <li><a href="/abscontrol/{{ objProfile.id }}/view/{{ element.id }}" class="lnkPattern">{{ element.value }}</a></li>
28 {% endif %}
14 {% endif %}
29 {% endfor %}
15 {% endfor %}
30 </ul>
16 </ul>
31 </nav>
17 </nav>
32 </div>
18 </div>
33 <div class="cleardivs"></div>
19 <div class="cleardivs"></div>
34 {% endif %}
20 {% endif %}
35 <div id="antennaUp">
21 <div id="antennaUp">
36 <fieldset class="flsAntenna">
22 <fieldset class="flsAntenna">
37 <legend>UP</legend>
23 <legend>UP</legend>
38 <div class="divAntenna">
24 <div class="divAntenna">
39 <label for="lblAntenna">Antenna</label>
25 <label for="lblAntenna">Antenna</label>
40 <p>{{ antennaUp.value }}</p>
26 <p>{{ antennaUp.value }}</p>
41 </div>
27 </div>
42 <div class="divTx">
28 <div class="divTx">
43 <label for="lblTx">Tx</label>
29 <label for="lblTx">Tx</label>
44 <p>{{ antennaUp.tx }}</p>
30 <p>{{ antennaUp.tx }}</p>
45 </div>
31 </div>
46 <div class="divTx">
32 <div class="divTx">
47 <label for="lblRx">Rx</label>
33 <label for="lblRx">Rx</label>
48 <p>{{ antennaUp.rx }}</p>
34 <p>{{ antennaUp.rx }}</p>
49 </div>
35 </div>
50 <div class="cleardivs"></div>
36 <div class="cleardivs"></div>
51 <div class="divUes">
37 <div class="divUes">
52 <label for="lblUes">Ues:</label>
38 <label for="lblUes">Ues:</label>
53 <label for="lblAntennaUpUes">{{ antennaUp.ues }}</label>
39 <label for="lblAntennaUpUes">{{ antennaUp.ues }}</label>
54 </div>
40 </div>
55 </fieldset>
41 </fieldset>
56 </div>
42 </div>
57 <div id="antennaDown">
43 <div id="antennaDown">
58 <fieldset class="flsAntenna">
44 <fieldset class="flsAntenna">
59 <legend>DOWN</legend>
45 <legend>DOWN</legend>
60 <div class="divAntenna">
46 <div class="divAntenna">
61 <label for="lblAntenna">Antenna</label>
47 <label for="lblAntenna">Antenna</label>
62 <p>{{ antennaDown.value }}</p>
48 <p>{{ antennaDown.value }}</p>
63 </div>
49 </div>
64 <div class="divTx">
50 <div class="divTx">
65 <label for="lblTx">Tx</label>
51 <label for="lblTx">Tx</label>
66 <p>{{ antennaDown.tx }}</p>
52 <p>{{ antennaDown.tx }}</p>
67 </div>
53 </div>
68 <div class="divTx">
54 <div class="divTx">
69 <label for="lblRx">Rx</label>
55 <label for="lblRx">Rx</label>
70 <p>{{ antennaDown.rx }}</p>
56 <p>{{ antennaDown.rx }}</p>
71 </div>
57 </div>
72 <div class="cleardivs"></div>
58 <div class="cleardivs"></div>
73 <div class="divUes">
59 <div class="divUes">
74 <label for="lblUes">Ues:</label>
60 <label for="lblUes">Ues:</label>
75 <label for="lblAntennaDownUes">{{ antennaDown.ues }}</label>
61 <label for="lblAntennaDownUes">{{ antennaDown.ues }}</label>
76 </div>
62 </div>
77 </fieldset>
63 </fieldset>
78 </div>
64 </div>
79 <input type="hidden" name="profile_id" id="profile_id" value="{{ objProfile.id }}" />
65 <input type="hidden" name="profile_id" id="profile_id" value="{{ objProfile.id }}" />
80 </div>
66 </div>
81 {% endblock %}
67 {% endblock %}
General Comments 0
You need to be logged in to leave comments. Login now