##// END OF EJS Templates
- Mejorando el diseño de la aplicacion.
jsalyrosas -
r180:181
parent child
Show More
@@ -1,401 +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.filter(state=1)
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.filter(state=1)
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 if mode == "e":
242 if mode == "e":
243 newurl = '/abscontrol/%d/edit/%d' % (int(profile_id), int(pattern_id))
243 newurl = '/abscontrol/%d/edit/%d' % (int(profile_id), int(pattern_id))
244 else:
244 else:
245 newurl = '/abscontrol/%d/view/%d' % (int(profile_id), int(pattern_id))
245 newurl = '/abscontrol/%d/view/%d' % (int(profile_id), int(pattern_id))
246
246
247 return redirect(newurl)
247 return redirect(newurl)
248
248
249 def viewPattern(request, profile_id, pattern_id):
249 def viewPattern(request, profile_id, pattern_id):
250
250
251 profile_list = Profile.objects.filter(state=1)
251 profile_list = Profile.objects.filter(state=1)
252 objProfile = Profile.objects.get(pk=profile_id)
252 objProfile = Profile.objects.get(pk=profile_id)
253
253
254 patternChoosen = Pattern.objects.get(pk=pattern_id)
254 patternChoosen = Pattern.objects.get(pk=pattern_id)
255
255
256 objAntennaUp = patternChoosen.antennaup_set.get()
256 objAntennaUp = patternChoosen.antennaup_set.get()
257 objAntennaDown = patternChoosen.antennadown_set.get()
257 objAntennaDown = patternChoosen.antennadown_set.get()
258
258
259 lsPatterns = objProfile.pattern_set.all()
259 lsPatterns = objProfile.pattern_set.all()
260
260
261 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,
262 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
262 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
263 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
263 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
264 })
264 })
265
265
266 def deletePattern(request, profile_id, pattern_id):
266 def deletePattern(request, profile_id, pattern_id):
267 newurl = '/abscontrol/edit/%d' % int(profile_id)
267 newurl = '/abscontrol/edit/%d' % int(profile_id)
268
268
269 return redirect(newurl)
269 return redirect(newurl)
270
270
271 def importProfile(request):
271 def importProfile(request):
272 profile_list = Profile.objects.all()
272 profile_list = Profile.objects.filter(state=1)
273 return render_to_response('abscontrol/import.html', {'profile_list': profile_list,})
273 return render_to_response('abscontrol/import.html', {'profile_list': profile_list,})
274
274
275 def showImport(request):
275 def showImport(request):
276 if request.method == 'POST':
276 if request.method == 'POST':
277 txtFilename = request.FILES['txtFile']
277 txtFilename = request.FILES['txtFile']
278 if txtFilename:
278 if txtFilename:
279 destination = open('/tmp/'+txtFilename.name, 'wb+')
279 destination = open('/tmp/'+txtFilename.name, 'wb+')
280 for chunk in txtFilename.chunks():
280 for chunk in txtFilename.chunks():
281 destination.write(chunk)
281 destination.write(chunk)
282 destination.close()
282 destination.close()
283 filename = '/tmp/'+txtFilename.name
283 filename = '/tmp/'+txtFilename.name
284 readFile = readABSFile(filename)
284 readFile = readABSFile(filename)
285 expName, num_patterns, patterns = readFile.getMetadata()
285 expName, num_patterns, patterns = readFile.getMetadata()
286 else:
286 else:
287 txtFilename = "Error"
287 txtFilename = "Error"
288 #content = "Error"
288 #content = "Error"
289 expName = ""
289 expName = ""
290 num_patterns = 0
290 num_patterns = 0
291
291
292 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,
293 'expName' : expName, 'num_patterns' : num_patterns,
293 'expName' : expName, 'num_patterns' : num_patterns,
294 })
294 })
295
295
296 def saveImport(request):
296 def saveImport(request):
297 patterns = []
297 patterns = []
298
298
299 expName = request.POST["txtProfile"]
299 expName = request.POST["txtProfile"]
300 num_patterns = int(request.POST["txtNumPatterns"])
300 num_patterns = int(request.POST["txtNumPatterns"])
301
301
302 newprofile = Profile(name=expName)
302 newprofile = Profile(name=expName)
303 newprofile.save()
303 newprofile.save()
304
304
305 for i in range(0,num_patterns):
305 for i in range(0,num_patterns):
306 number = request.POST["txtNumberPattern"+str(i+1)]
306 number = request.POST["txtNumberPattern"+str(i+1)]
307 txtAntennaUp = request.POST["txtAntennaUp"+str(i+1)]
307 txtAntennaUp = request.POST["txtAntennaUp"+str(i+1)]
308 txtAntennaDown = request.POST["txtAntennaDown"+str(i+1)]
308 txtAntennaDown = request.POST["txtAntennaDown"+str(i+1)]
309 dicPattern = {"number" : number, "up" : txtAntennaUp, "down" : txtAntennaDown}
309 dicPattern = {"number" : number, "up" : txtAntennaUp, "down" : txtAntennaDown}
310 patterns.append(dicPattern)
310 patterns.append(dicPattern)
311 newpattern = newprofile.pattern_set.create(value=number)
311 newpattern = newprofile.pattern_set.create(value=number)
312 newpattern.antennaup_set.create(value=txtAntennaUp)
312 newpattern.antennaup_set.create(value=txtAntennaUp)
313 newpattern.antennadown_set.create(value=txtAntennaDown)
313 newpattern.antennadown_set.create(value=txtAntennaDown)
314
314
315 newurl = '/abscontrol/view/%d' % newprofile.id
315 newurl = '/abscontrol/view/%d' % newprofile.id
316
316
317 return redirect(newurl)
317 return redirect(newurl)
318 '''
318 '''
319 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,
320 'num_patterns' : num_patterns,
320 'num_patterns' : num_patterns,
321 })
321 })
322 '''
322 '''
323
323
324 def overJRO(request, profile_id, pattern_id, antenna_id):
324 def overJRO(request, profile_id, pattern_id, antenna_id):
325 if request.GET["beam"] == "Up":
325 if request.GET["beam"] == "Up":
326 objAntenna = AntennaUp.objects.get(pk=antenna_id)
326 objAntenna = AntennaUp.objects.get(pk=antenna_id)
327 else:
327 else:
328 objAntenna = AntennaDown.objects.get(pk=antenna_id)
328 objAntenna = AntennaDown.objects.get(pk=antenna_id)
329 objProfile = Profile.objects.get(pk=profile_id)
329 objProfile = Profile.objects.get(pk=profile_id)
330 exp_name = objProfile.name
330 exp_name = objProfile.name
331
331
332 phase_tx = objAntenna.value
332 phase_tx = objAntenna.value
333 gain_tx = objAntenna.tx
333 gain_tx = objAntenna.tx
334 gain_rx = objAntenna.rx
334 gain_rx = objAntenna.rx
335 ues_tx = objAntenna.ues
335 ues_tx = objAntenna.ues
336 only_rx = objAntenna.only_rx
336 only_rx = objAntenna.only_rx
337
337
338 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
339
339
340 def export(request, profile_id):
340 def export(request, profile_id):
341 listPatterns = []
341 listPatterns = []
342 objProfile = Profile.objects.get(pk=profile_id)
342 objProfile = Profile.objects.get(pk=profile_id)
343 exp_name = objProfile.name
343 exp_name = objProfile.name
344 lsPatterns = objProfile.pattern_set.all()
344 lsPatterns = objProfile.pattern_set.all()
345 for element in lsPatterns:
345 for element in lsPatterns:
346 objAntennaUp = element.antennaup_set.get()
346 objAntennaUp = element.antennaup_set.get()
347 objAntennaDown = element.antennadown_set.get()
347 objAntennaDown = element.antennadown_set.get()
348 dicPatterns = {"number" : element.value, "up" : objAntennaUp.value, "down" : objAntennaDown.value}
348 dicPatterns = {"number" : element.value, "up" : objAntennaUp.value, "down" : objAntennaDown.value}
349 listPatterns.append(dicPatterns)
349 listPatterns.append(dicPatterns)
350
350
351 absFile = saveABSFile()
351 absFile = saveABSFile()
352 absFile.setParameters(settings.MEDIA_ROOT, exp_name, listPatterns)
352 absFile.setParameters(settings.MEDIA_ROOT, exp_name, listPatterns)
353 filename, filesize = absFile.save()
353 filename, filesize = absFile.save()
354
354
355 wrapper = FileWrapper( open( filename, "r" ) )
355 wrapper = FileWrapper( open( filename, "r" ) )
356 content_type = mimetypes.guess_type( filename )[0]
356 content_type = mimetypes.guess_type( filename )[0]
357
357
358 response = HttpResponse(wrapper, content_type = content_type)
358 response = HttpResponse(wrapper, content_type = content_type)
359 response['Content-Description'] = 'File Transfer'
359 response['Content-Description'] = 'File Transfer'
360 response['Content-Disposition'] = 'attachment; filename=%s' % smart_str(filename)
360 response['Content-Disposition'] = 'attachment; filename=%s' % smart_str(filename)
361 response['Content-Transfer-Encoding'] = 'binary'
361 response['Content-Transfer-Encoding'] = 'binary'
362 response['Expires'] = '0'
362 response['Expires'] = '0'
363 response['Cache-Control'] = 'must-revalidate'
363 response['Cache-Control'] = 'must-revalidate'
364 response['Pragma'] = 'public'
364 response['Pragma'] = 'public'
365 response['Content-Length'] = '%s' % str(filesize)
365 response['Content-Length'] = '%s' % str(filesize)
366 response['X-Sendfile'] = '%s' % smart_str(filename)
366 response['X-Sendfile'] = '%s' % smart_str(filename)
367
367
368 return response
368 return response
369
369
370 def send(request, profile_id):
370 def send(request, profile_id):
371 listPatterns = []
371 listPatterns = []
372 objProfile = Profile.objects.get(pk=profile_id)
372 objProfile = Profile.objects.get(pk=profile_id)
373 exp_name = objProfile.name
373 exp_name = objProfile.name
374
374
375 lsPatterns = objProfile.pattern_set.all()
375 lsPatterns = objProfile.pattern_set.all()
376 for element in lsPatterns:
376 for element in lsPatterns:
377 objAntennaUp = element.antennaup_set.get()
377 objAntennaUp = element.antennaup_set.get()
378 objAntennaDown = element.antennadown_set.get()
378 objAntennaDown = element.antennadown_set.get()
379 dicPatterns = {"number" : element.value, "up" : objAntennaUp.value, "down" : objAntennaDown.value}
379 dicPatterns = {"number" : element.value, "up" : objAntennaUp.value, "down" : objAntennaDown.value}
380 listPatterns.append(dicPatterns)
380 listPatterns.append(dicPatterns)
381
381
382 absFile = saveABSFile()
382 absFile = saveABSFile()
383 absFile.setParameters(settings.MEDIA_ROOT, exp_name, listPatterns)
383 absFile.setParameters(settings.MEDIA_ROOT, exp_name, listPatterns)
384 filename, filesize = absFile.save()
384 filename, filesize = absFile.save()
385
385
386 apiclient = sendFile()
386 apiclient = sendFile()
387 apiclient.execute(filename)
387 apiclient.execute(filename)
388 output = apiclient.getOutput()
388 output = apiclient.getOutput()
389
389
390 if output == "OK":
390 if output == "OK":
391 message = "File sent successfully."
391 message = "File sent successfully."
392 objProfile.hits += 1
392 objProfile.hits += 1
393 objProfile.save()
393 objProfile.save()
394 else:
394 else:
395 message = "Error sending file."
395 message = "Error sending file."
396
396
397 profile_list = Profile.objects.all()
397 profile_list = Profile.objects.all()
398
398
399 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,
400 'objProfile': objProfile,
400 'objProfile': objProfile,
401 })
401 })
@@ -1,97 +1,99
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 !important; 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: 0px solid #1cc; margin-top: 5px; margin-bottom: 5px}
13 #content #leftcolumn {float: left;border: 2px solid #f00 !important; width: 160px; }
13 #content #topcolumn {float: left;border: 1px solid #ddd !important; width: 980px; height: 40px; line-height: 35px;
14 #content #maincolumn {float: left; border: 1px solid #000 !important; width: 780px; margin: 0; padding: 0px 10px }
14 margin: 2px 0px; box-shadow: 2px 2px 5px #888;}
15 #content #maincolumn {float: left; border: 0px solid #000 !important; width: 980px; margin: 2px 0px; padding: 0px 0px;
16 box-shadow: 2px 2px 5px #666;}
15 footer {border: 1px solid #200; font-size: 0.9em; height: 30px; text-align: center; line-height: 20px}
17 footer {border: 1px solid #200; font-size: 0.9em; height: 30px; text-align: center; line-height: 20px}
16
18
17 .cleardivs {clear: both; border: 0px solid #400; height: 0px}
19 .cleardivs {clear: both; border: 0px solid #400; height: 0px}
18 /****************************************************************************************/
20 /****************************************************************************************/
19 /****** ESTILOS GENERALES *****************/
21 /****** ESTILOS GENERALES *****************/
20 /****************************************************************************************/
22 /****************************************************************************************/
21 .mnu{ height: 22px; border: 0px solid #c55 !important;}
23 .mnu{ height: 22px; border: 0px solid #c55 !important;}
22 .mnu li{ display:inline;}
24 .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}
25 .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;}
26 .MnuHorizontal ul{ list-style: none; list-style-type: none; margin: 0;}
25
27
26 /*.MnuHorizontal{ display: -webkit-box; -webkit-box-orient:horizontal;}*/
28 /*.MnuHorizontal{ display: -webkit-box; -webkit-box-orient:horizontal;}*/
27 /*.MnuHorizontal a{ display:block; padding:10px; -webkit-box-flex:1; text-align:center; }*/
29 /*.MnuHorizontal a{ display:block; padding:10px; -webkit-box-flex:1; text-align:center; }*/
28
30
29 /****************************************************************************************/
31 /****************************************************************************************/
30 /****** MENU DE NAVEGACION DE PERFILES **********************************/
32 /****** MENU DE NAVEGACION DE PERFILES **********************************/
31 /****************************************************************************************/
33 /****************************************************************************************/
32 #content #infoProfiles {border: 1px solid #1cc !important; width: 100%; margin: 0px; padding-top: 2px; padding-bottom: 2px}
34 #infoProfiles {border: 0px solid #1cc !important; width: 300px; margin: 0px; padding-top: 2px; padding-bottom: 2px;
33 .lblInfo {line-height: 20px; padding: 10px 10px 10px 12px; margin: 10px 0}
35 float: left;}
34 #infoProfiles select {padding-left: 0px; line-height: 25px;margin-left: 12px; font-family: 'Droid Sans', sans-serif;
36 #infoProfiles label {padding: 10px 10px 10px 12px; margin: 10px 0}
35 font-size: 11px; letter-spacing: 0.029em;}
37 #infoProfiles select {padding: 4px 0px; margin: 0; font-family: 'Droid Sans', sans-serif;
36 #content nav {border: 0px solid #c55 !important; margin: 0px;}
38 font-size: 12px; letter-spacing: 0.029em; width: 200px;}
37
39 #mnuProfiles{margin: 0px; border: 0px solid #1494F6 !important; float: left; padding: 2px 10px}
38 #leftcolumn #mnuProfiles{ margin: 5px 0px; border: 0px solid #1494F6 !important; }
39 #mnuProfiles ul{list-style: none; list-style-type: none; margin: 0; padding-left: 20px; border: 0px solid #f00 !important}
40 #mnuProfiles ul{list-style: none; list-style-type: none; margin: 0; padding-left: 20px; border: 0px solid #f00 !important}
40 #mnuProfiles li{ width: 80px; padding: 2px; border: 0px solid #c55 !important; line-height: 22px}
41 #mnuProfiles li{ width: 80px; padding: 2px; border: 0px solid #c55 !important; float: left; }
41 #mnuProfiles a{ font-weight: normal; color: #1494F6; display: block; border: 0px solid #1cc !important; text-align: left}
42 #mnuProfiles a{ font-weight: normal; color: #1494F6; display: block; border: 0px solid #1cc !important; text-align: center}
42
43
43 /****************************************************************************************/
44 /****************************************************************************************/
44 /******** FORMULARIO DE PERFILES *************************************/
45 /******** FORMULARIO DE PERFILES *************************************/
45 /****************************************************************************************/
46 /****************************************************************************************/
46 #divProfile { border: 0px solid #dff; margin: 10px 0px; padding: 10px 10px; width: 500px }
47 #divProfile { border: 0px solid #dff !important; margin: 10px 0px; padding: 10px 10px; width: 500px }
47 .flsAntenna { margin: 0; width: 750px; padding: 5px }
48 .flsAntenna { margin: 0; width: 100%; padding: 0px; border: 0px solid #f00 !important }
48 #divPattern textarea,input[type=text],label{ font-family: "Open Sans"; font-size: inherit; }
49 #divPattern textarea,input[type=text],label{ font-family: "Open Sans"; font-size: inherit; }
49 #divPattern textarea {resize: none; overflow: hidden}
50 #divPattern textarea {resize: none; overflow: hidden}
50 .antenna{ border: 1px solid #1494F6 !important; padding: 5px}
51 .antenna{ border: 0px solid #1494F6 !important; padding: 2px; margin: 5px 10px; float: left; width: 480px}
51 .infoAntenna{ border: 0px solid #f00 !important; width: 480px; float: left}
52 .infoAntenna{ border: 0px solid #f00 !important; width: 480px; float: left}
52 .overJRO{ border: 0px solid #1cc !important; width: 250px; float: left; margin: 0px 5px}
53 .overJRO{ border: 0px solid #1cc !important; width: 250px; float: left; margin: 0px 5px}
53 .divAntenna { float: left; margin: 10px; border: 0px solid #fcc !important; width: 190px }
54 .divAntenna { float: left; margin: 10px; border: 0px solid #fcc !important; width: 190px }
54 .divAntenna label{ display: block }
55 .divAntenna label{ display: block }
55 .txtAntenna { width: 175px; max-width: 180px; height: 160px; max-height: 165px; background: #fdfdfb; padding: 4px;
56 .txtAntenna { width: 175px; max-width: 180px; height: 160px; max-height: 165px; background: #fdfdfb; padding: 4px;
56 border: 2px solid #eee !important; /*font-family: "Ubuntu"; font-size: inherit;*/
57 border: 2px solid #eee !important; /*font-family: "Ubuntu"; font-size: inherit;*/
57 text-align: justify; margin: 0 auto; line-height: 20px}
58 text-align: justify; margin: 0 auto; line-height: 20px}
58 .divAntenna p{ width: 175px; max-width: 180px; height: 160px; max-height: 165px; background: #fdfdfb; padding: 2px;
59 .divAntenna p{ width: 175px; max-width: 180px; height: 160px; max-height: 165px; background: #fdfdfb; padding: 2px;
59 border: 1px solid #eee !important; font-family: "Ubuntu"; font-size: inherit;
60 border: 1px solid #eee !important; font-family: "Ubuntu"; font-size: inherit;
60 text-align: justify; margin: 0 auto; line-height: 20px}
61 text-align: justify; margin: 0 auto; line-height: 20px}
61
62
62 .divTx { display: block; float: left; margin: 10px; height: 150px }
63 .divTx { display: block; float: left; margin: 10px; height: 150px }
63 .divTx label{ display: block }
64 .divTx label{ display: block }
64 .divTx textarea{ width: 135px; max-width: 135px; height: 135px; max-height: 140px; text-align: justify }
65 .divTx textarea{ width: 135px; max-width: 135px; height: 135px; max-height: 140px; text-align: justify }
65 .divTx p{ width: 100px; max-width: 105px; height: 160px; max-height: 165px; background: #fdfdfb; padding: 2px;
66 .divTx p{ width: 100px; max-width: 105px; height: 160px; max-height: 165px; background: #fdfdfb; padding: 2px;
66 border: 1px solid #eee !important; font-family: "Ubuntu"; font-size: inherit;
67 border: 1px solid #eee !important; font-family: "Ubuntu"; font-size: inherit;
67 text-align: justify; margin: 0 auto; line-height: 20px;}
68 text-align: justify; margin: 0 auto; line-height: 20px;}
68
69
69 .divUes { display: block; margin: 10px}
70 .divUes { display: block; margin: 10px}
70 .divUes input[type=text] { width: 240px; max-width: 240px; font-family: "Ubuntu"; font-size: inherit;}
71 .divUes input[type=text] { width: 240px; max-width: 240px; font-family: "Ubuntu"; font-size: inherit;}
71
72
72 .overJRO img{width: 200; height: 145px; text-align: center; vertical-align: middle; margin: 25px 5px 5px 5px;
73 .overJRO img{width: 400px; height: 200px; text-align: center; vertical-align: middle; margin: 40px 5px 5px 5px;
73 display: block; background: #fdfdfb; border: 1px solid #eee !important;}
74 display: block; background: #fdfdfb; border: 1px solid #eee !important;}
74 .overJRO a{ text-align: center; margin: 0 auto; display: block}
75 .overJRO a{ text-align: center; margin: 0 auto; display: block}
75
76
76 /****************************************************************************************/
77 /****************************************************************************************/
77 /****** MENU DE NAVEGACION DE PATRONES **********************************/
78 /****** MENU DE NAVEGACION DE PATRONES **********************************/
78 /****************************************************************************************/
79 /****************************************************************************************/
79 #divMnuPattern{ width: 280px; height: 25px; display: block; border: 0px solid #1cc !important; float: left; margin-left: 500px}
80 #divMnuPattern{ width: 280px; height: 25px; display: block; border: 0px solid #1cc !important; float: right;
80 #divMnuPattern li{ float: left; display: block; width: 60px; border: 0px solid #2cc !important}
81 margin: 5px 40px 5px 0px;}
82 #divMnuPattern li{ float: right; display: block; width: 60px; border: 0px solid #2cc !important}
81 #divMnuPattern a{ display: block; line-height: 22px; text-decoration: none; padding: 0px 5px;
83 #divMnuPattern a{ display: block; line-height: 22px; text-decoration: none; padding: 0px 5px;
82 border-bottom: 1px solid #1494F6 !important; margin: 0px 2px; text-align: center; color: #1494F6
84 border-bottom: 1px solid #1494F6 !important; margin: 0px 2px; text-align: center; color: #1494F6
83 }
85 }
84 #infoPattern{ display: block; border: 1px solid #1494f6 !important, margin: 5px 2px; }
86 #infoPattern{ display: block; border: 1px solid #1494f6 !important; margin: 5px 2px; }
85
87
86 #navPatterns{ margin: 5px auto; border: 0px solid #d00 !important; width: 700px; height: 30px;
88 #navPatterns{ margin: 0 auto; border: 0px solid #d00 !important; width: 700px; height: 30px;
87 font-family: 'Ubuntu', sans-serif; font-size: 14px; padding: 10px 0px}
89 font-family: 'Ubuntu', sans-serif; font-size: 14px; padding: 5px 0px}
88 #navPatternList{ margin: 0px auto; border: 1px solid #ecc !important}
90 #navPatternList{ margin: 0 auto; border: 0px solid #ecc !important}
89 #navPatternList ul{ list-style: none; list-style-type: none; margin: 0;}
91 #navPatternList ul{ list-style: none; list-style-type: none; margin: 0;}
90 #navPatternList ul li{ float: left; width: 50px; border: 1px solid #eee !important; }
92 #navPatternList ul li{ float: left; width: 50px; border: 1px solid #eee !important; }
91 #navPatternList a{ width: 50px; border: 0px solid #1cc !important; display: block; text-align: center; line-height: 30px; padding: 1px 0px}
93 #navPatternList a{ width: 50px; border: 0px solid #1cc !important; display: block; text-align: center; line-height: 30px; padding: 1px 0px}
92 .lnkPattern{ background-color: #ccc !important; color: #eee;}
94 .lnkPattern{ background-color: #ccc !important; color: #eee;}
93 .lnkPatternSelected{ background-color: #2cc !important; color: #fff;}
95 .lnkPatternSelected{ background-color: #2cc !important; color: #fff;}
94
96
95 .divListofPatterns{ width: 650px; display: block; border: 1px solid #1cc !important; margin: 0 auto}
97 .divListofPatterns{ width: 650px; display: block; border: 1px solid #1cc !important; margin: 0 auto}
96 .divPattern{ width: 600px; display: block; border: 1px solid #f00 !important; margin: 2px auto; }
98 .divPattern{ width: 600px; display: block; border: 1px solid #f00 !important; margin: 2px auto; }
97
99
@@ -1,109 +1,110
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 %}
5 {% endblock %}
6 {% block mnu_profile %}
6 {% block mnu_profile %}
7 <nav class="MnuVertical" id="mnuProfiles">
7 <nav class="MnuVertical" id="mnuProfiles">
8 <ul>
8 <ul>
9 <li><a href="/abscontrol/new">New</a></li>
9 <li><a href="/abscontrol/new">New</a></li>
10 <li><a href="#">Save</a></li>
10 <li><a href="#">Save</a></li>
11 <li><a href="#">Save as</a></li>
11 <li><a href="#">Save as</a></li>
12 <li><a href="/abscontrol/import">Import</a></li>
12 <li><a href="/abscontrol/import">Import</a></li>
13 {% if objProfile %}
13 {% if objProfile %}
14 <li><a href="#" id="lnkExport" alt="{{ objProfile.id }}">Export</a></li>
14 <li><a href="#" id="lnkExport" alt="{{ objProfile.id }}">Export</a></li>
15 {% endif %}
15 {% endif %}
16 </ul>
16 </ul>
17 </nav>
17 </nav>
18 {% endblock %}
18 {% endblock %}
19 {% block maincolumn%}
19 {% block maincolumn%}
20 <div id="maincolumn">
20 <div id="maincolumn">
21 <div id="divProfile">
21 <div id="divProfile">
22 <label for="lblName">Profile:</label>
22 <label for="lblName">Profile:</label>
23 <label for="lblProfile">{{ objProfile.name }}</label>
23 <label for="lblProfile">{{ objProfile.name }}</label>
24 </div>
24 </div>
25 {% if patternChoosen %}
26 <div id="navPatterns">
27 <nav class="" id="navPatternList">
28 <ul>
29 {% for element in lsPatterns %}
30 {% if patternChoosen.id == element.id %}
31 <li><a href="/abscontrol/{{ objProfile.id }}/edit/{{ element.id }}" class="lnkPatternSelected">{{ element.value }}</a></li>
32 {% else %}
33 <li><a href="/abscontrol/{{ objProfile.id }}/edit/{{ element.id }}" class="lnkPattern">{{ element.value }}</a></li>
34 {% endif %}
35 {% endfor %}
36 </ul>
37 </nav>
38 </div>
39 {% endif %}
25 <div id="divPattern">
40 <div id="divPattern">
26 {% block mnuPattern %}
41 {% block mnuPattern %}
27 <div class="divMenu" id="divMnuPattern">
42 <div class="divMenu" id="divMnuPattern">
28 <nav class="MnuHorizontal">
43 <nav class="MnuHorizontal">
29 <ul class="mnu" id="mnuPattern">
44 <ul class="mnu" id="mnuPattern">
45 {% if lsPatterns|length > 1 %}
46 <li><a href="/abscontrol/{{ objProfile.id }}/delete/{{ patternChoosen.id }}">Delete</a></li>
47 {% endif %}
48 <li><a href="#" class="" id="lnkSave">Save</a></li>
30 {% if lsPatterns|length < 10 %}
49 {% if lsPatterns|length < 10 %}
31 <li><a href="/abscontrol/{{ objProfile.id }}/add">Add</a></li>
50 <li><a href="/abscontrol/{{ objProfile.id }}/add">Add</a></li>
32 {% endif %}
33 <li><a href="#" class="" id="lnkSave">Save</a></li>
34 {% if lsPatterns|length > 1 %}
35 <li><a href="/abscontrol/{{ objProfile.id }}/delete/{{ patternChoosen.id }}">Delete</a></li>
36 {% endif %}
51 {% endif %}
37 </ul>
52 </ul>
38 </nav>
53 </nav>
39 </div>
54 </div>
40 <div class="cleardivs"></div>
55 <div class="cleardivs"></div>
41 {% endblock %}
56 {% endblock %}
42 {% block pattern %}
57 {% block pattern %}
43 <div id="infoPattern">
58 <div id="infoPattern">
44 {% if patternChoosen %}
59
45 <div id="navPatterns">
46 <nav class="" id="navPatternList">
47 <ul>
48 {% for element in lsPatterns %}
49 {% if patternChoosen.id == element.id %}
50 <li><a href="/abscontrol/{{ objProfile.id }}/edit/{{ element.id }}" class="lnkPatternSelected">{{ element.value }}</a></li>
51 {% else %}
52 <li><a href="/abscontrol/{{ objProfile.id }}/edit/{{ element.id }}" class="lnkPattern">{{ element.value }}</a></li>
53 {% endif %}
54 {% endfor %}
55 </ul>
56 </nav>
57 </div>
58 {% endif %}
59 <div id="antennaUp">
60 <div id="antennaUp">
60 <fieldset class="flsAntenna">
61 <fieldset class="flsAntenna">
61 <legend>UP</legend>
62 <legend>UP</legend>
62 <div class="divAntenna">
63 <div class="divAntenna">
63 <label for="lblAntenna">Antenna</label>
64 <label for="lblAntenna">Antenna</label>
64 <textarea name="txtAntennaUp" class="txtAntenna" cols="38" rows="8">{{ antennaUp.value }}</textarea>
65 <textarea name="txtAntennaUp" class="txtAntenna" cols="38" rows="8">{{ antennaUp.value }}</textarea>
65 </div>
66 </div>
66 <div class="divTx">
67 <div class="divTx">
67 <label for="lblTx">Tx</label>
68 <label for="lblTx">Tx</label>
68 <textarea name="txtTxUp" class="txtTR" cols="20" rows="8">{{ antennaUp.tx }}</textarea>
69 <textarea name="txtTxUp" class="txtTR" cols="20" rows="8">{{ antennaUp.tx }}</textarea>
69 </div>
70 </div>
70 <div class="divTx">
71 <div class="divTx">
71 <label for="lblRx">Rx</label>
72 <label for="lblRx">Rx</label>
72 <textarea name="txtRxUp" class="txtTR" cols="20" rows="8">{{ antennaUp.rx }}</textarea>
73 <textarea name="txtRxUp" class="txtTR" cols="20" rows="8">{{ antennaUp.rx }}</textarea>
73 </div>
74 </div>
74 <div class="cleardivs"></div>
75 <div class="cleardivs"></div>
75 <div class="divUes">
76 <div class="divUes">
76 <label for="lblUes">Ues:</label>
77 <label for="lblUes">Ues:</label>
77 <input type="text" name="txtUesUp" value="{{ antennaUp.ues }}" />
78 <input type="text" name="txtUesUp" value="{{ antennaUp.ues }}" />
78 </div>
79 </div>
79 <input type="hidden" name="txtAntennaUpId" value="{{ antennaUp.id }}" />
80 <input type="hidden" name="txtAntennaUpId" value="{{ antennaUp.id }}" />
80 </fieldset>
81 </fieldset>
81 </div>
82 </div>
82 <div id="antennaDown">
83 <div id="antennaDown">
83 <fieldset class="flsAntenna">
84 <fieldset class="flsAntenna">
84 <legend>DOWN</legend>
85 <legend>DOWN</legend>
85 <div class="divAntenna">
86 <div class="divAntenna">
86 <label for="lblAntenna">Antenna</label>
87 <label for="lblAntenna">Antenna</label>
87 <textarea name="txtAntennaDown" class="txtAntenna" cols="38" rows="8">{{ antennaDown.value }}</textarea>
88 <textarea name="txtAntennaDown" class="txtAntenna" cols="38" rows="8">{{ antennaDown.value }}</textarea>
88 </div>
89 </div>
89 <div class="divTx">
90 <div class="divTx">
90 <label for="lblTx">Tx</label>
91 <label for="lblTx">Tx</label>
91 <textarea name="txtTxDown" class="txtTR" cols="20" rows="8">{{ antennaDown.tx }}</textarea>
92 <textarea name="txtTxDown" class="txtTR" cols="20" rows="8">{{ antennaDown.tx }}</textarea>
92 </div>
93 </div>
93 <div class="divTx">
94 <div class="divTx">
94 <label for="lblRx">Rx</label>
95 <label for="lblRx">Rx</label>
95 <textarea name="txtRxDown" class="txtTR" cols="20" rows="8">{{ antennaDown.rx }}</textarea>
96 <textarea name="txtRxDown" class="txtTR" cols="20" rows="8">{{ antennaDown.rx }}</textarea>
96 </div>
97 </div>
97 <div class="cleardivs"></div>
98 <div class="cleardivs"></div>
98 <div class="divUes">
99 <div class="divUes">
99 <label for="lblUes">Ues:</label>
100 <label for="lblUes">Ues:</label>
100 <input type="text" name="txtUesDown" value="{{ antennaDown.ues }}" />
101 <input type="text" name="txtUesDown" value="{{ antennaDown.ues }}" />
101 </div>
102 </div>
102 <input type="hidden" name="txtAntennaDownId" value="{{ antennaDown.id }}" />
103 <input type="hidden" name="txtAntennaDownId" value="{{ antennaDown.id }}" />
103 </fieldset>
104 </fieldset>
104 </div>
105 </div>
105 </div>
106 </div>
106 {% endblock %}
107 {% endblock %}
107 </div>
108 </div>
108 </div>
109 </div>
109 {% endblock %}
110 {% endblock %}
@@ -1,85 +1,71
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 <li><a href="#" id="lnkCancel">Delete</a></li>
8 <li><a href="#" id="lnkSave">Save</a></li>
7 {% if lsPatterns|length < 10 %}
9 {% if lsPatterns|length < 10 %}
8 <li><a href="#" id="lnkAdd">Add</a></li>
10 <li><a href="#" id="lnkAdd">Add</a></li>
9 {% endif %}
11 {% endif %}
10 <li><a href="#" id="lnkSave">Save</a></li>
11 <li><a href="#" id="lnkCancel">Delete</a></li>
12 </ul>
12 </ul>
13 </nav>
13 </nav>
14 </div>
14 </div>
15 <div class="cleardivs"></div>
15 <div class="cleardivs"></div>
16 {% endblock %}
16 {% endblock %}
17 {% block pattern %}
17 {% block pattern %}
18 <div id="infoPattern">
18 <div id="infoPattern">
19 <div id="navPatterns">
20 <nav class="" id="navPatternList">
21 <ul>
22 {% for element in lsPatterns %}
23 {% if patternChoosen.id == element.id %}
24 <li><a href="/abscontrol/{{ objProfile.id }}/edit/{{ element.id }}" class="lnkPatternSelected">{{ element.value }}</a></li>
25 {% else %}
26 <li><a href="/abscontrol/{{ objProfile.id }}/edit/{{ element.id }}" class="lnkPattern">{{ element.value }}</a></li>
27 {% endif %}
28 {% endfor %}
29 </ul>
30 </nav>
31 </div>
32 <div class="cleardivs"></div>
33 <form action="/abscontrol/{{ objProfile.id }}/save/" id="frmPattern" method="post">
19 <form action="/abscontrol/{{ objProfile.id }}/save/" id="frmPattern" method="post">
34 <div id="antennaUp">
20 <div id="antennaUp">
35 <fieldset class="flsAntenna">
21 <fieldset class="flsAntenna">
36 <legend>UP</legend>
22 <legend>UP</legend>
37 <div class="divAntenna">
23 <div class="divAntenna">
38 <label for="lblAntenna">Antenna</label>
24 <label for="lblAntenna">Antenna</label>
39 <textarea name="txtAntennaUp" class="txtAntenna" cols="38" rows="8">{{ antennaUp.value }}</textarea>
25 <textarea name="txtAntennaUp" class="txtAntenna" cols="38" rows="8">{{ antennaUp.value }}</textarea>
40 </div>
26 </div>
41 <div class="divTx">
27 <div class="divTx">
42 <label for="lblTx">Tx</label>
28 <label for="lblTx">Tx</label>
43 <textarea name="txtTxUp" class="txtTR" cols="20" rows="8">{{ antennaUp.tx }}</textarea>
29 <textarea name="txtTxUp" class="txtTR" cols="20" rows="8">{{ antennaUp.tx }}</textarea>
44 </div>
30 </div>
45 <div class="divTx">
31 <div class="divTx">
46 <label for="lblRx">Rx</label>
32 <label for="lblRx">Rx</label>
47 <textarea name="txtRxUp" class="txtTR" cols="20" rows="8">{{ antennaUp.rx }}</textarea>
33 <textarea name="txtRxUp" class="txtTR" cols="20" rows="8">{{ antennaUp.rx }}</textarea>
48 </div>
34 </div>
49 <div class="cleardivs"></div>
35 <div class="cleardivs"></div>
50 <div class="divUes">
36 <div class="divUes">
51 <label for="lblUes">Ues:</label>
37 <label for="lblUes">Ues:</label>
52 <input type="text" name="txtUesUp" value="{{ antennaUp.ues }}" />
38 <input type="text" name="txtUesUp" value="{{ antennaUp.ues }}" />
53 </div>
39 </div>
54 <input type="hidden" name="txtAntennaUpId" value="{{ antennaUp.id }}" />
40 <input type="hidden" name="txtAntennaUpId" value="{{ antennaUp.id }}" />
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 <textarea name="txtAntennaDown" class="txtAntenna" cols="38" rows="8">{{ antennaDown.value }}</textarea>
48 <textarea name="txtAntennaDown" class="txtAntenna" cols="38" rows="8">{{ antennaDown.value }}</textarea>
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 <textarea name="txtTxDown" class="txtTR" cols="20" rows="8">{{ antennaDown.tx }}</textarea>
52 <textarea name="txtTxDown" class="txtTR" cols="20" rows="8">{{ antennaDown.tx }}</textarea>
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 <textarea name="txtRxDown" class="txtTR" cols="20" rows="8">{{ antennaDown.rx }}</textarea>
56 <textarea name="txtRxDown" class="txtTR" cols="20" rows="8">{{ antennaDown.rx }}</textarea>
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 <input type="text" name="txtUesDown" value="{{ antennaDown.ues }}" />
61 <input type="text" name="txtUesDown" value="{{ antennaDown.ues }}" />
76 </div>
62 </div>
77 <input type="hidden" name="txtAntennaDownId" value="{{ antennaDown.id }}" />
63 <input type="hidden" name="txtAntennaDownId" value="{{ antennaDown.id }}" />
78 </fieldset>
64 </fieldset>
79 </div>
65 </div>
80 <input type="hidden" name="pattern_id" id="pattern_id" value="{{ patternChoosen.id }}" />
66 <input type="hidden" name="pattern_id" id="pattern_id" value="{{ patternChoosen.id }}" />
81 <input type="hidden" name="profile_id" id="profile_id" value="{{ objProfile.id }}" />
67 <input type="hidden" name="profile_id" id="profile_id" value="{{ objProfile.id }}" />
82 <input type="hidden" name="mode" value="e">
68 <input type="hidden" name="mode" value="e">
83 </form>
69 </form>
84 </div>
70 </div>
85 {% endblock %} No newline at end of file
71 {% endblock %}
@@ -1,62 +1,66
1 {% extends "base.html" %}
1 {% extends "base.html" %}
2
2
3 {% block title %}ABS CONTROL:::::{% endblock %}
3 {% block title %}ABS CONTROL:::::{% endblock %}
4 {% block scripting %}
4 {% block scripting %}
5 {% if profile_list %}
5 {% if profile_list %}
6 <script src="/static/static/js/profiles.js"></script>
6 <script src="/static/static/js/profiles.js"></script>
7 {% endif %}
7 {% endif %}
8 {% endblock %}
8 {% endblock %}
9 {% block content %}
9 {% block content %}
10 <div id="content">
10 <div id="content">
11 {% block leftcolumn %}
11 {% block topcolumn %}
12 <div id="leftcolumn">
12 <div id="topcolumn">
13 <div id="lsProfiles">
13 <div id="lsProfiles">
14 <div id="infoProfiles">
14 <div id="infoProfiles">
15 <label for="lblProfile" class="lblInfo">Profiles:</label><br />
15 <label for="lblProfile" class="lblInfo">Profiles: </label>
16 {% if profile_list %}
16 {% if profile_list %}
17 <select name="lsProfiles" id="listProfiles">
17 <select name="lsProfiles" id="listProfiles">
18 <option value="-1">Choose ...</option>
18 <option value="-1">Choose ...</option>
19 {% for entry in profile_list %}
19 {% for entry in profile_list %}
20 {% if objProfile %}
20 {% if objProfile %}
21 {% if objProfile.id == entry.id %}
21 {% if objProfile.id == entry.id %}
22 <option value="{{ entry.id }}" selected>{{ entry.name }}</option>
22 <option value="{{ entry.id }}" selected>{{ entry.name }}</option>
23 {% else %}
23 {% else %}
24 <option value="{{ entry.id }}">{{ entry.name }}</option>
24 <option value="{{ entry.id }}">{{ entry.name }}</option>
25 {% endif %}
25 {% endif %}
26 {% else %}
26 {% else %}
27 <option value="{{ entry.id }}">{{ entry.name }}</option>
27 <option value="{{ entry.id }}">{{ entry.name }}</option>
28 {% endif %}
28 {% endif %}
29 {% endfor %}
29 {% endfor %}
30 </select>
30 </select>
31 {% else %}
31 {% else %}
32 <label for="lblMessage" class="lblInfo">No profiles.</label>
32 <label for="lblMessage" class="lblInfo">No profiles.</label>
33 {% endif %}
33 {% endif %}
34 </div>
34 </div>
35 </div>
35 </div>
36 {% block mnu_profile %}
36 {% block mnu_profile %}
37 <nav class="MnuVertical" id="mnuProfiles">
37 <div id="mnuProfiles">
38 <nav class="MnuVertical" id="navProfiles">
38 <ul>
39 <ul>
39 <li><a href="/abscontrol/new">New</a></li>
40 <li><a href="/abscontrol/new">New</a></li>
40 {% if objProfile %}
41 {% if objProfile %}
41 <li><a href="/abscontrol/edit/{{ objProfile.id }}">Edit</a></li>
42 <li><a href="/abscontrol/edit/{{ objProfile.id }}">Edit</a></li>
42 <li><a href="#">Save</a></li>
43 <li><a href="#">Save</a></li>
43 {% endif %}
44 {% endif %}
44 <li><a href="#">Save as</a></li>
45 <li><a href="#">Save as</a></li>
45 <li><a href="/abscontrol/import">Import</a></li>
46 <li><a href="/abscontrol/import">Import</a></li>
46 {% if objProfile %}
47 {% if objProfile %}
47 <li><a href="#" id="lnkExport" alt="{{ objProfile.id }}">Export</a></li>
48 <li><a href="#" id="lnkExport" alt="{{ objProfile.id }}">Export</a></li>
48 <li><a href="#" id="lnkSendFile" alt="{{ objProfile.id }}">Send</a></li>
49 <li><a href="#" id="lnkSendFile" alt="{{ objProfile.id }}">Send</a></li>
49 {% endif %}
50 {% endif %}
50 </ul>
51 </ul>
52 <div class="cleardivs"></div>
51 </nav>
53 </nav>
54 </div>
52 {% endblock %}
55 {% endblock %}
56 <div class="cleardivs"></div>
53 </div>
57 </div>
54 {% endblock %}
58 {% endblock %}
55 {% block maincolumn %}
59 {% block maincolumn %}
56 <div id="maincolumn">
60 <div id="maincolumn">
57
61
58 </div>
62 </div>
59 {% endblock %}
63 {% endblock %}
60 <div class="cleardivs"></div>
64 <div class="cleardivs"></div>
61 </div>
65 </div>
62 {% endblock %} No newline at end of file
66 {% endblock %}
@@ -1,130 +1,133
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 mnu_profile %}
4 {% block mnu_profile %}
5 <nav class="MnuVertical" id="mnuProfiles">
5 <nav class="MnuVertical" id="mnuProfiles">
6 <ul>
6 <ul>
7 <li><a href="/abscontrol/new">New</a></li>
7 <li><a href="/abscontrol/new">New</a></li>
8 {% if patternChoosen %}
8 {% if patternChoosen %}
9 <li><a href="/abscontrol/{{ objProfile.id }}/edit/{{ patternChoosen.id }}">Edit</a></li>
9 <li><a href="/abscontrol/{{ objProfile.id }}/edit/{{ patternChoosen.id }}">Edit</a></li>
10 {% else %}
10 {% else %}
11 <li><a href="/abscontrol/edit/{{ objProfile.id }}">Edit</a></li>
11 <li><a href="/abscontrol/edit/{{ objProfile.id }}">Edit</a></li>
12 {% endif %}
12 {% endif %}
13 <li><a href="#">Save as</a></li>
13 <li><a href="#">Save as</a></li>
14 <li><a href="/abscontrol/import">Import</a></li>
14 <li><a href="/abscontrol/import">Import</a></li>
15 <li><a href="#" id="lnkExport" alt="{{ objProfile.id }}">Export</a></li>
15 <li><a href="#" id="lnkExport" alt="{{ objProfile.id }}">Export</a></li>
16 <li><a href="#" id="lnkSendFile" alt="{{ objProfile.id }}">Send</a></li>
16 <li><a href="#" id="lnkSendFile" alt="{{ objProfile.id }}">Send</a></li>
17 </ul>
17 </ul>
18 </nav>
18 </nav>
19 {% endblock %}
19 {% endblock %}
20 {% block maincolumn%}
20 {% block maincolumn%}
21 <div id="maincolumn">
21 <div id="maincolumn">
22 <div id="divProfile">
22 <div id="divProfile">
23 <label for="lblName">Profile:</label>
23 <label for="lblName">Profile:</label>
24 <label for="lblProfile">{{ objProfile.name }}</label>
24 <label for="lblProfile">{{ objProfile.name }}</label>
25 </div>
25 </div>
26 {% if patternChoosen %}
27 <div id="navPatterns">
28 <nav class="" id="navPatternList">
29 <ul>
30 {% for element in lsPatterns %}
31 {% if patternChoosen.id == element.id %}
32 <li><a href="/abscontrol/{{ objProfile.id }}/view/{{ element.id }}/" class="lnkPatternSelected">{{ element.value }}</a></li>
33 {% else %}
34 <li><a href="/abscontrol/{{ objProfile.id }}/view/{{ element.id }}/" class="lnkPattern">{{ element.value }}</a></li>
35 {% endif %}
36 {% endfor %}
37 </ul>
38 <div class="cleardivs"></div>
39 </nav>
40 </div>
41 {% endif %}
42 {% block mnuPattern %}
43 <div class="divMenu" id="divMnuPattern">
44 <nav class="MnuHorizontal">
45 <ul class="mnu" id="mnuPattern">
46 <li><a href="#">Apply</a></li>
47 </ul>
48 </nav>
49 </div>
50 <div class="cleardivs"></div>
51 {% endblock %}
26 <div id="divPattern">
52 <div id="divPattern">
27 {% block mnuPattern %}
28 <div class="divMenu" id="divMnuPattern">
29 <nav class="MnuHorizontal">
30 <ul class="mnu" id="mnuPattern">
31 <li><a href="#">Apply</a></li>
32 </ul>
33 </nav>
34 </div>
35 <div class="cleardivs"></div>
36 {% endblock %}
37 <div id="infoPattern">
53 <div id="infoPattern">
38 {% if patternChoosen %}
39 <div id="navPatterns">
40 <nav class="" id="navPatternList">
41 <ul>
42 {% for element in lsPatterns %}
43 {% if patternChoosen.id == element.id %}
44 <li><a href="/abscontrol/{{ objProfile.id }}/view/{{ element.id }}/" class="lnkPatternSelected">{{ element.value }}</a></li>
45 {% else %}
46 <li><a href="/abscontrol/{{ objProfile.id }}/view/{{ element.id }}/" class="lnkPattern">{{ element.value }}</a></li>
47 {% endif %}
48 {% endfor %}
49 </ul>
50 </nav>
51 </div>
52 {% endif %}
53 <div id="antennaUp" class="antenna">
54 <div id="antennaUp" class="antenna">
54 <fieldset class="flsAntenna">
55 <fieldset class="flsAntenna">
55 <legend>UP</legend>
56 <legend>UP</legend>
56 <div class="infoAntenna">
57 <div class="infoAntenna">
57 <div class="divAntenna">
58 <div class="divAntenna">
58 <label for="lblAntenna">Antenna</label>
59 <label for="lblAntenna">Antenna</label>
59 <p>{{ antennaUp.value }}</p>
60 <p>{{ antennaUp.value }}</p>
60 </div>
61 </div>
61 <div class="divTx">
62 <div class="divTx">
62 <label for="lblTx">Tx</label>
63 <label for="lblTx">Tx</label>
63 <p>{{ antennaUp.tx }}</p>
64 <p>{{ antennaUp.tx }}</p>
64 </div>
65 </div>
65 <div class="divTx">
66 <div class="divTx">
66 <label for="lblRx">Rx</label>
67 <label for="lblRx">Rx</label>
67 <p>{{ antennaUp.rx }}</p>
68 <p>{{ antennaUp.rx }}</p>
68 </div>
69 </div>
69 <div class="cleardivs"></div>
70 <div class="cleardivs"></div>
70 <div class="divUes">
71 <div class="divUes">
71 <label for="lblUes">Ues:</label>
72 <label for="lblUes">Ues:</label>
72 <label for="lblAntennaUpUes">{{ antennaUp.ues }}</label>
73 <label for="lblAntennaUpUes">{{ antennaUp.ues }}</label>
73 {% if antennaUp.only_rx == 0 %}
74 {% if antennaUp.only_rx == 0 %}
74 <input type="checkbox" name="chkOnlyRxUp" value="" />
75 <input type="checkbox" name="chkOnlyRxUp" value="" />
75 {% else %}
76 {% else %}
76 <input type="checkbox" name="chkOnlyRxUp" value="" checked="checked"/>
77 <input type="checkbox" name="chkOnlyRxUp" value="" checked="checked"/>
77 {% endif %}
78 {% endif %}
78 <label for="lblOnlyRx">Only RX</label>
79 <label for="lblOnlyRx">Only RX</label>
79 </div>
80 </div>
80 </div>
81 </div>
81 <div class="overJRO">
82 </fieldset>
82 <img />
83 </div>
83 <a href="#" class="activeOverJRO" id="Up">Preview</a>
84 <div class="overJRO">
84 </div>
85 <img />
85 <div class="cleardivs"></div>
86 <a href="#" class="activeOverJRO" id="Up">Preview</a>
86 </fieldset>
87 </div>
87 </div>
88 <div class="cleardivs"></div>
89
88 <div id="antennaDown" class="antenna">
90 <div id="antennaDown" class="antenna">
89 <fieldset class="flsAntenna">
91 <fieldset class="flsAntenna">
90 <legend>DOWN</legend>
92 <legend>DOWN</legend>
91 <div class="infoAntenna">
93 <div class="infoAntenna">
92 <div class="divAntenna">
94 <div class="divAntenna">
93 <label for="lblAntenna">Antenna</label>
95 <label for="lblAntenna">Antenna</label>
94 <p>{{ antennaDown.value }}</p>
96 <p>{{ antennaDown.value }}</p>
95 </div>
97 </div>
96 <div class="divTx">
98 <div class="divTx">
97 <label for="lblTx">Tx</label>
99 <label for="lblTx">Tx</label>
98 <p>{{ antennaDown.tx }}</p>
100 <p>{{ antennaDown.tx }}</p>
99 </div>
101 </div>
100 <div class="divTx">
102 <div class="divTx">
101 <label for="lblRx">Rx</label>
103 <label for="lblRx">Rx</label>
102 <p>{{ antennaDown.rx }}</p>
104 <p>{{ antennaDown.rx }}</p>
103 </div>
105 </div>
104 <div class="cleardivs"></div>
106 <div class="cleardivs"></div>
105 <div class="divUes">
107 <div class="divUes">
106 <label for="lblUes">Ues:</label>
108 <label for="lblUes">Ues:</label>
107 <label for="lblAntennaDownUes">{{ antennaDown.ues }}</label>
109 <label for="lblAntennaDownUes">{{ antennaDown.ues }}</label>
108 {% if antennaDown.only_rx == 0 %}
110 {% if antennaDown.only_rx == 0 %}
109 <input type="checkbox" name="chkOnlyRxDown" value="" />
111 <input type="checkbox" name="chkOnlyRxDown" value="" />
110 {% else %}
112 {% else %}
111 <input type="checkbox" name="chkOnlyRxDown" value="" checked="checked"/>
113 <input type="checkbox" name="chkOnlyRxDown" value="" checked="checked"/>
112 {% endif %}
114 {% endif %}
113 <label for="lblOnlyRx">Only RX</label>
115 <label for="lblOnlyRx">Only RX</label>
114 </div>
116 </div>
115 </div>
117 </div>
116 <div class="overJRO">
118
117 <img />
118 <a href="#" class="activeOverJRO" id="Down">Preview</a>
119 </div>
120 <div class="cleardivs"></div>
121 </fieldset>
119 </fieldset>
122 </div>
120 </div>
121 <div class="overJRO">
122 <img />
123 <a href="#" class="activeOverJRO" id="Down">Preview</a>
124 </div>
125 <div class="cleardivs"></div>
123 </div>
126 </div>
124 <input type="hidden" name="txtAntennaUpId" value="{{ antennaUp.id }}"/>
127 <input type="hidden" name="txtAntennaUpId" value="{{ antennaUp.id }}"/>
125 <input type="hidden" name="txtAntennaDownId" value="{{ antennaDown.id }}"/>
128 <input type="hidden" name="txtAntennaDownId" value="{{ antennaDown.id }}"/>
126 <input type="hidden" name="txtPatternId" value="{{ patternChoosen.id }}"/>
129 <input type="hidden" name="txtPatternId" value="{{ patternChoosen.id }}"/>
127 <input type="hidden" name="txtProfileId" value="{{ objProfile.id }}"/>
130 <input type="hidden" name="txtProfileId" value="{{ objProfile.id }}"/>
128 </div>
131 </div>
129 </div>
132 </div>
130 {% endblock %}
133 {% endblock %}
@@ -1,53 +1,48
1 {% load static %}
1 {% load static %}
2 <!DOCTYPE html>
2 <!DOCTYPE html>
3 <html lang="en">
3 <html lang="en">
4 <head>
4 <head>
5 <meta charset="utf-8" />
5 <meta charset="utf-8" />
6 {% comment %}
6 {% comment %}
7 <!-- Always force latest IE rendering engine (even in intranet) & Chrome Frame
7 <!-- Always force latest IE rendering engine (even in intranet) & Chrome Frame
8 Remove this if you use the .htaccess -->
8 Remove this if you use the .htaccess -->
9 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
9 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
10 {% endcomment %}
10 {% endcomment %}
11 <link href='http://fonts.googleapis.com/css?family=Droid+Sans|Ubuntu:400,500,300italic|Open+Sans:400,300,600|Open+Sans+Condensed:300,700|Roboto+Condensed:400,300' rel='stylesheet' type='text/css'>
11 <link href='http://fonts.googleapis.com/css?family=Droid+Sans|Ubuntu:400,500,300italic|Open+Sans:400,300,600|Open+Sans+Condensed:300,700|Roboto+Condensed:400,300' rel='stylesheet' type='text/css'>
12 <link rel="stylesheet" href="{% static 'static/css/style.css' %}" type="text/css" />
12 <link rel="stylesheet" href="{% static 'static/css/style.css' %}" type="text/css" />
13 <script src="{% static 'static/js/jquery-1.9.1.min.js' %}"></script>
13 <script src="{% static 'static/js/jquery-1.9.1.min.js' %}"></script>
14 {% block scripting %}{% endblock %}
14 {% block scripting %}{% endblock %}
15 <title>{% block title %}JRO WEB APPS::::{% endblock %}</title>
15 <title>{% block title %}JRO WEB APPS::::{% endblock %}</title>
16 <meta name="description" content="JRO WEB APPLICATIONS" />
16 <meta name="description" content="JRO WEB APPLICATIONS" />
17 <meta name="author" content="Jose Antonio Sal y Rosas Celi" />
17 <meta name="author" content="Jose Antonio Sal y Rosas Celi" />
18
18
19 {# <meta name="viewport" content="width=device-width; initial-scale=1.0" /> #}
19 {# <meta name="viewport" content="width=device-width; initial-scale=1.0" /> #}
20 {% comment %}
20 {% comment %}
21 <!-- Replace favicon.ico & apple-touch-icon.png in the root of your domain and delete these references -->
21 <!-- Replace favicon.ico & apple-touch-icon.png in the root of your domain and delete these references -->
22 <link rel="shortcut icon" href="/favicon.ico" />
22 <link rel="shortcut icon" href="/favicon.ico" />
23 <link rel="apple-touch-icon" href="/apple-touch-icon.png" />
23 <link rel="apple-touch-icon" href="/apple-touch-icon.png" />
24 {% endcomment %}
24 {% endcomment %}
25 </head>
25 </head>
26 <body>
26 <body>
27 <div id="schema">
27 <div id="schema">
28 <header>
28 <header>
29 {% block header %}
29 {% block header %}
30 <nav>
30 <nav>
31 <a href="/abscontrol">ABS</a> |
31 <a href="/abscontrol/">ABS</a> |
32 <a href="#">CR</a> |
32 <a href="#">CR</a> |
33 <a href="#">DDS</a> |
33 <a href="#">DDS</a> |
34 <a href="#">JARS</a>
34 <a href="#">JARS</a>
35 </nav>
35 </nav>
36 {% endblock %}
36 {% endblock %}
37 </header>
37 </header>
38 {% block content %}
38 {% block content %}
39 <div id="content">
39 <div id="content"></div>
40 <nav>
41 <p><a href="/">Home</a></p>
42 <p><a href="/contact">Contact</a></p>
43 </nav>
44 </div>
45 {% endblock %}
40 {% endblock %}
46 <footer>
41 <footer>
47 {% block footer %}
42 {% block footer %}
48 <p>&copy; Copyright by Jicamarca Radio Observatory</p>
43 <p>&copy; Copyright by Jicamarca Radio Observatory</p>
49 {% endblock %}
44 {% endblock %}
50 </footer>
45 </footer>
51 </div>
46 </div>
52 </body>
47 </body>
53 </html>
48 </html>
General Comments 0
You need to be logged in to leave comments. Login now