##// END OF EJS Templates
- Ampliado el formulario de edicion para el parametro only_rx y funcionalidad verificada cuando graba los datos en la BD y cuando genera el archivo para su integracion con overjro.
jsalyrosas -
r209:210
parent child
Show More
@@ -1,552 +1,564
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 from django.contrib.auth.decorators import login_required
7 from django.contrib.auth.decorators import login_required
8 from django.template import RequestContext
8 from django.template import RequestContext
9
9
10 from datetime import datetime
10 from datetime import datetime
11 import os
11 import os
12 from abscontrol.models import Profile, Pattern, AntennaDown, AntennaUp
12 from abscontrol.models import Profile, Pattern, AntennaDown, AntennaUp
13
13
14 from util.readABSFile import readABSFile
14 from util.readABSFile import readABSFile
15 from util.saveABSFile import saveABSFile
15 from util.saveABSFile import saveABSFile
16 from util.ABSData import ABSData
16 from util.ABSData import ABSData
17 from util.OverJRO import OverJRO
17 from util.OverJRO import OverJRO
18 from scripts.sendFile import sendFile
18 from scripts.sendFile import sendFile
19 from scripts.changeBeam import changeBeam
19 from scripts.changeBeam import changeBeam
20 from overJroShow import overJroShow
20 from overJroShow import overJroShow
21
21
22 arrayTx = [["0","0","0","0","0","0","0","0"],\
22 arrayTx = [["0","0","0","0","0","0","0","0"],\
23 ["0","0","0","0","0","0","0","0"],\
23 ["0","0","0","0","0","0","0","0"],\
24 ["0","0","0","0","0","0","0","0"],\
24 ["0","0","0","0","0","0","0","0"],\
25 ["0","0","0","0","0","0","0","0"],\
25 ["0","0","0","0","0","0","0","0"],\
26 ["0","0","0","0","0","0","0","0"],\
26 ["0","0","0","0","0","0","0","0"],\
27 ["0","0","0","0","0","0","0","0"],\
27 ["0","0","0","0","0","0","0","0"],\
28 ["0","0","0","0","0","0","0","0"],\
28 ["0","0","0","0","0","0","0","0"],\
29 ["0","0","0","0","0","0","0","0"]]
29 ["0","0","0","0","0","0","0","0"]]
30
30
31 arrayUes = ["0.533333","0.00000","1.06667","0.00000"]
31 arrayUes = ["0.533333","0.00000","1.06667","0.00000"]
32
32
33 @login_required(login_url='/accounts/login/')
33 @login_required(login_url='/accounts/login/')
34 def index(request):
34 def index(request):
35 #latest_poll_list = profileAntenna.objects.all().order_by('-pub_date')[:5]
35 #latest_poll_list = profileAntenna.objects.all().order_by('-pub_date')[:5]
36 profile_list = Profile.objects.filter(state=1)
36 profile_list = Profile.objects.filter(state=1)
37 return render_to_response('abscontrol/index.html', {'profile_list': profile_list}, context_instance=RequestContext(request))
37 return render_to_response('abscontrol/index.html', {'profile_list': profile_list}, context_instance=RequestContext(request))
38
38
39 def new(request):
39 def new(request):
40 profile_list = Profile.objects.filter(state=1)
40 profile_list = Profile.objects.filter(state=1)
41 txtProfile = datetime.now().strftime("%Y%m%d%H%M%S%f")
41 txtProfile = datetime.now().strftime("%Y%m%d%H%M%S%f")
42 newprofile = Profile(name=txtProfile)
42 newprofile = Profile(name=txtProfile)
43 newprofile.save()
43 newprofile.save()
44
44
45 lsPatterns = None
45 lsPatterns = None
46
46
47 return render_to_response('abscontrol/new.html', {'profile_list': profile_list,
47 return render_to_response('abscontrol/new.html', {'profile_list': profile_list,
48 'profile_name' : newprofile.name,
48 'profile_name' : newprofile.name,
49 'profile_id' : newprofile.id,
49 'profile_id' : newprofile.id,
50 'lsPatterns' : lsPatterns,
50 'lsPatterns' : lsPatterns,
51 'range' : range(8), 'arrayUes' : arrayUes,
51 'range' : range(8), 'arrayUes' : arrayUes,
52 }, context_instance=RequestContext(request))
52 }, context_instance=RequestContext(request))
53
53
54 def save(request):
54 def save(request):
55
55
56 txtProfile = request.POST["txtProfile"]
56 txtProfile = request.POST["txtProfile"]
57
57
58 txtAntennaUp = request.POST["txtAntennaUp"]
58 txtAntennaUp = request.POST["txtAntennaUp"]
59 txtTxUp = request.POST["txtTxUp"]
59 txtTxUp = request.POST["txtTxUp"]
60 txtRxUp = request.POST["txtRxUp"]
60 txtRxUp = request.POST["txtRxUp"]
61 txtUesUp = request.POST["txtUesUp"]
61 txtUesUp = request.POST["txtUesUp"]
62
62
63 txtAntennaDown = request.POST["txtAntennaDown"]
63 txtAntennaDown = request.POST["txtAntennaDown"]
64 txtTxDown = request.POST["txtTxDown"]
64 txtTxDown = request.POST["txtTxDown"]
65 txtRxDown = request.POST["txtRxDown"]
65 txtRxDown = request.POST["txtRxDown"]
66 txtUesDown = request.POST["txtUesDown"]
66 txtUesDown = request.POST["txtUesDown"]
67
67
68 newprofile = Profile(name=txtProfile)
68 newprofile = Profile(name=txtProfile)
69 newprofile.save()
69 newprofile.save()
70
70
71 newpattern = newprofile.pattern_set.create(value=1)
71 newpattern = newprofile.pattern_set.create(value=1)
72 newpattern.antennaup_set.create(value=txtAntennaUp,tx=txtTxUp,rx=txtRxUp,ues=txtUesUp)
72 newpattern.antennaup_set.create(value=txtAntennaUp,tx=txtTxUp,rx=txtRxUp,ues=txtUesUp)
73 newpattern.antennadown_set.create(value=txtAntennaDown,tx=txtTxDown,rx=txtRxDown,ues=txtUesDown)
73 newpattern.antennadown_set.create(value=txtAntennaDown,tx=txtTxDown,rx=txtRxDown,ues=txtUesDown)
74
74
75 newurl = '/abscontrol/view/%d' % newprofile.id
75 newurl = '/abscontrol/view/%d' % newprofile.id
76
76
77 return redirect(newurl)
77 return redirect(newurl)
78
78
79 # Update temporal experiment
79 # Update temporal experiment
80 def upgrade(request, profile_id):
80 def upgrade(request, profile_id):
81 txtAntennaUp = request.POST["txtAntennaUp"]
81 txtAntennaUp = request.POST["txtAntennaUp"]
82 txtTxUp = request.POST["txtTxUp"]
82 txtTxUp = request.POST["txtTxUp"]
83 txtRxUp = request.POST["txtRxUp"]
83 txtRxUp = request.POST["txtRxUp"]
84 txtUesUp = request.POST["txtUesUp"]
84 txtUesUp = request.POST["txtUesUp"]
85
85
86 txtAntennaDown = request.POST["txtAntennaDown"]
86 txtAntennaDown = request.POST["txtAntennaDown"]
87 txtTxDown = request.POST["txtTxDown"]
87 txtTxDown = request.POST["txtTxDown"]
88 txtRxDown = request.POST["txtRxDown"]
88 txtRxDown = request.POST["txtRxDown"]
89 txtUesDown = request.POST["txtUesDown"]
89 txtUesDown = request.POST["txtUesDown"]
90
90
91 objProfile = Profile.objects.get(pk=profile_id)
91 objProfile = Profile.objects.get(pk=profile_id)
92 newpattern = objProfile.pattern_set.create(value=1)
92 newpattern = objProfile.pattern_set.create(value=1)
93 newpattern.antennaup_set.create(value=txtAntennaUp,tx=txtTxUp,rx=txtRxUp,ues=txtUesUp)
93 newpattern.antennaup_set.create(value=txtAntennaUp,tx=txtTxUp,rx=txtRxUp,ues=txtUesUp)
94 newpattern.antennadown_set.create(value=txtAntennaDown,tx=txtTxDown,rx=txtRxDown,ues=txtUesDown)
94 newpattern.antennadown_set.create(value=txtAntennaDown,tx=txtTxDown,rx=txtRxDown,ues=txtUesDown)
95
95
96 newurl = '/abscontrol/%d/edit/%d' % (int(profile_id), newpattern.id)
96 newurl = '/abscontrol/%d/edit/%d' % (int(profile_id), newpattern.id)
97 return redirect(newurl)
97 return redirect(newurl)
98
98
99 def update(request, profile_id):
99 def update(request, profile_id):
100 txtProfile = request.POST["txtProfile"]
100 txtProfile = request.POST["txtProfile"]
101
101
102 objProfile = Profile.objects.get(pk=profile_id)
102 objProfile = Profile.objects.get(pk=profile_id)
103 objProfile.name = txtProfile
103 objProfile.name = txtProfile
104 objProfile.state = 1
104 objProfile.state = 1
105 objProfile.save()
105 objProfile.save()
106
106
107 newurl = '/abscontrol/view/%d' % objProfile.id
107 newurl = '/abscontrol/view/%d' % objProfile.id
108 return redirect(newurl)
108 return redirect(newurl)
109
109
110 def changeName(request, profile_id):
110 def changeName(request, profile_id):
111 profile_list = Profile.objects.filter(state=1)
111 profile_list = Profile.objects.filter(state=1)
112 objProfile = Profile.objects.get(pk=profile_id)
112 objProfile = Profile.objects.get(pk=profile_id)
113 lsPatterns = objProfile.pattern_set.all()
113 lsPatterns = objProfile.pattern_set.all()
114
114
115 return render_to_response('abscontrol/changeName.html', {'profile_list': profile_list,
115 return render_to_response('abscontrol/changeName.html', {'profile_list': profile_list,
116 'objProfile': objProfile,
116 'objProfile': objProfile,
117 'lsPatterns' : lsPatterns,
117 'lsPatterns' : lsPatterns,
118 }, context_instance=RequestContext(request))
118 }, context_instance=RequestContext(request))
119
119
120 def view(request, profile_id):
120 def view(request, profile_id):
121 objProfileActive = None
121 objProfileActive = None
122 objPatternActive = None
122 objPatternActive = None
123
123
124 if request.method == 'GET' and 'pattern' in request.GET:
124 if request.method == 'GET' and 'pattern' in request.GET:
125 pattern_value = request.GET["pattern"]
125 pattern_value = request.GET["pattern"]
126 else:
126 else:
127 pattern_value = 1
127 pattern_value = 1
128
128
129 profile_list = Profile.objects.filter(state=1)
129 profile_list = Profile.objects.filter(state=1)
130 objProfile = Profile.objects.get(pk=profile_id)
130 objProfile = Profile.objects.get(pk=profile_id)
131
131
132 lsPatterns = objProfile.pattern_set.all()
132 lsPatterns = objProfile.pattern_set.all()
133 patternChoosen = objProfile.pattern_set.get(value=pattern_value)
133 patternChoosen = objProfile.pattern_set.get(value=pattern_value)
134 objAntennaUp = patternChoosen.antennaup_set.get()
134 objAntennaUp = patternChoosen.antennaup_set.get()
135 objAntennaDown = patternChoosen.antennadown_set.get()
135 objAntennaDown = patternChoosen.antennadown_set.get()
136
136
137 lsProfilesActive = Profile.objects.filter(is_active=1)
137 lsProfilesActive = Profile.objects.filter(is_active=1)
138 if len(lsProfilesActive) > 0:
138 if len(lsProfilesActive) > 0:
139 objProfileActive = Profile.objects.get(is_active=1)
139 objProfileActive = Profile.objects.get(is_active=1)
140
140
141 lsPatternsActive = Pattern.objects.filter(is_active=1)
141 lsPatternsActive = Pattern.objects.filter(is_active=1)
142 if len(lsPatternsActive) > 0:
142 if len(lsPatternsActive) > 0:
143 objPatternActive = Pattern.objects.get(is_active=1)
143 objPatternActive = Pattern.objects.get(is_active=1)
144
144
145 return render_to_response('abscontrol/view.html', {'objProfile': objProfile, 'profile_list': profile_list,
145 return render_to_response('abscontrol/view.html', {'objProfile': objProfile, 'profile_list': profile_list,
146 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
146 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
147 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
147 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
148 'profileActive' : objProfileActive, 'patternActive' : objPatternActive,
148 'profileActive' : objProfileActive, 'patternActive' : objPatternActive,
149 }, context_instance=RequestContext(request))
149 }, context_instance=RequestContext(request))
150
150
151 def edit(request, profile_id):
151 def edit(request, profile_id):
152 if request.method == 'GET' and 'pattern' in request.GET:
152 if request.method == 'GET' and 'pattern' in request.GET:
153 pattern_value = request.GET["pattern"]
153 pattern_value = request.GET["pattern"]
154 else:
154 else:
155 pattern_value = 1
155 pattern_value = 1
156
156
157 absData = ABSData()
157 absData = ABSData()
158 profile_list = Profile.objects.filter(state=1)
158 profile_list = Profile.objects.filter(state=1)
159 objProfile = Profile.objects.get(pk=profile_id)
159 objProfile = Profile.objects.get(pk=profile_id)
160
160
161 lsPatterns = objProfile.pattern_set.all()
161 lsPatterns = objProfile.pattern_set.all()
162 patternChoosen = objProfile.pattern_set.get(value=pattern_value)
162 patternChoosen = objProfile.pattern_set.get(value=pattern_value)
163 objAntennaUp = patternChoosen.antennaup_set.get()
163 objAntennaUp = patternChoosen.antennaup_set.get()
164 objAntennaDown = patternChoosen.antennadown_set.get()
164 objAntennaDown = patternChoosen.antennadown_set.get()
165
165
166 arrayAntennaUp = absData.convertStringtoList2(objAntennaUp.value)
166 arrayAntennaUp = absData.convertStringtoList2(objAntennaUp.value)
167 if objAntennaUp.tx != None:
167 if objAntennaUp.tx != None:
168 arrayTxUp = absData.convertStringtoList2(objAntennaUp.tx)
168 arrayTxUp = absData.convertStringtoList2(objAntennaUp.tx)
169 else:
169 else:
170 arrayTxUp = arrayTx
170 arrayTxUp = arrayTx
171 if objAntennaUp.rx != None:
171 if objAntennaUp.rx != None:
172 arrayRxUp = absData.convertStringtoList2(objAntennaUp.rx)
172 arrayRxUp = absData.convertStringtoList2(objAntennaUp.rx)
173 else:
173 else:
174 arrayRxUp = arrayTx
174 arrayRxUp = arrayTx
175 if objAntennaUp.ues != None:
175 if objAntennaUp.ues != None:
176 arrayUesUp = absData.convertStringtoList1(objAntennaUp.ues)
176 arrayUesUp = absData.convertStringtoList1(objAntennaUp.ues)
177 else:
177 else:
178 arrayUesUp = arrayUes
178 arrayUesUp = arrayUes
179
179
180 arrayAntennaDown = absData.convertStringtoList2(objAntennaDown.value)
180 arrayAntennaDown = absData.convertStringtoList2(objAntennaDown.value)
181 if objAntennaDown.tx != None:
181 if objAntennaDown.tx != None:
182 arrayTxDown = absData.convertStringtoList2(objAntennaDown.tx)
182 arrayTxDown = absData.convertStringtoList2(objAntennaDown.tx)
183 else:
183 else:
184 arrayTxDown = arrayTx
184 arrayTxDown = arrayTx
185 if objAntennaDown.rx != None:
185 if objAntennaDown.rx != None:
186 arrayRxDown = absData.convertStringtoList2(objAntennaDown.rx)
186 arrayRxDown = absData.convertStringtoList2(objAntennaDown.rx)
187 else:
187 else:
188 arrayRxDown = arrayTx
188 arrayRxDown = arrayTx
189 if objAntennaDown.ues != None:
189 if objAntennaDown.ues != None:
190 arrayUesDown = absData.convertStringtoList1(objAntennaDown.ues)
190 arrayUesDown = absData.convertStringtoList1(objAntennaDown.ues)
191 else:
191 else:
192 arrayUesDown = arrayUes
192 arrayUesDown = arrayUes
193
193
194 return render_to_response('abscontrol/edit.html', {'objProfile': objProfile, 'profile_list': profile_list,
194 return render_to_response('abscontrol/edit.html', {'objProfile': objProfile, 'profile_list': profile_list,
195 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
195 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
196 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
196 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
197 'arrayAntennaUp' : arrayAntennaUp, 'arrayTxUp' : arrayTxUp,
197 'arrayAntennaUp' : arrayAntennaUp, 'arrayTxUp' : arrayTxUp,
198 'arrayRxUp' : arrayRxUp, 'arrayRxDown' : arrayRxDown,
198 'arrayRxUp' : arrayRxUp, 'arrayRxDown' : arrayRxDown,
199 'arrayAntennaDown' : arrayAntennaDown, 'arrayTxDown' : arrayTxDown,
199 'arrayAntennaDown' : arrayAntennaDown, 'arrayTxDown' : arrayTxDown,
200 'arrayUesUp' : arrayUesUp, 'arrayUesDown' : arrayUesDown,
200 'arrayUesUp' : arrayUesUp, 'arrayUesDown' : arrayUesDown,
201 }, context_instance=RequestContext(request))
201 }, context_instance=RequestContext(request))
202
202
203 def addPattern(request, profile_id):
203 def addPattern(request, profile_id):
204 profile_list = Profile.objects.filter(state=1)
204 profile_list = Profile.objects.filter(state=1)
205 objProfile = Profile.objects.get(pk=profile_id)
205 objProfile = Profile.objects.get(pk=profile_id)
206
206
207 return render_to_response('abscontrol/addPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
207 return render_to_response('abscontrol/addPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
208 'range' : range(8), 'arrayUes' : arrayUes,
208 'range' : range(8), 'arrayUes' : arrayUes,
209 }, context_instance=RequestContext(request))
209 }, context_instance=RequestContext(request))
210
210
211 def editPattern(request, profile_id, pattern_id):
211 def editPattern(request, profile_id, pattern_id):
212 absData = ABSData()
212 absData = ABSData()
213 profile_list = Profile.objects.filter(state=1)
213 profile_list = Profile.objects.filter(state=1)
214 objProfile = Profile.objects.get(pk=profile_id)
214 objProfile = Profile.objects.get(pk=profile_id)
215 lsPatterns = objProfile.pattern_set.all()
215 lsPatterns = objProfile.pattern_set.all()
216 patternChoosen = Pattern.objects.get(pk=pattern_id)
216 patternChoosen = Pattern.objects.get(pk=pattern_id)
217 objAntennaUp = patternChoosen.antennaup_set.get()
217 objAntennaUp = patternChoosen.antennaup_set.get()
218 objAntennaDown = patternChoosen.antennadown_set.get()
218 objAntennaDown = patternChoosen.antennadown_set.get()
219
219
220 arrayAntennaUp = absData.convertStringtoList2(objAntennaUp.value)
220 arrayAntennaUp = absData.convertStringtoList2(objAntennaUp.value)
221 if objAntennaUp.tx != None:
221 if objAntennaUp.tx != None:
222 arrayTxUp = absData.convertStringtoList2(objAntennaUp.tx)
222 arrayTxUp = absData.convertStringtoList2(objAntennaUp.tx)
223 else:
223 else:
224 arrayTxUp = arrayTx
224 arrayTxUp = arrayTx
225 if objAntennaUp.rx != None:
225 if objAntennaUp.rx != None:
226 arrayRxUp = absData.convertStringtoList2(objAntennaUp.rx)
226 arrayRxUp = absData.convertStringtoList2(objAntennaUp.rx)
227 else:
227 else:
228 arrayRxUp = arrayTx
228 arrayRxUp = arrayTx
229 if objAntennaUp.ues != None:
229 if objAntennaUp.ues != None:
230 arrayUesUp = absData.convertStringtoList1(objAntennaUp.ues)
230 arrayUesUp = absData.convertStringtoList1(objAntennaUp.ues)
231 else:
231 else:
232 arrayUesUp = arrayUes
232 arrayUesUp = arrayUes
233
233
234 arrayAntennaDown = absData.convertStringtoList2(objAntennaDown.value)
234 arrayAntennaDown = absData.convertStringtoList2(objAntennaDown.value)
235 if objAntennaDown.tx != None:
235 if objAntennaDown.tx != None:
236 arrayTxDown = absData.convertStringtoList2(objAntennaDown.tx)
236 arrayTxDown = absData.convertStringtoList2(objAntennaDown.tx)
237 else:
237 else:
238 arrayTxDown = arrayTx
238 arrayTxDown = arrayTx
239 if objAntennaDown.rx != None:
239 if objAntennaDown.rx != None:
240 arrayRxDown = absData.convertStringtoList2(objAntennaDown.rx)
240 arrayRxDown = absData.convertStringtoList2(objAntennaDown.rx)
241 else:
241 else:
242 arrayRxDown = arrayTx
242 arrayRxDown = arrayTx
243 if objAntennaDown.ues != None:
243 if objAntennaDown.ues != None:
244 arrayUesDown = absData.convertStringtoList1(objAntennaDown.ues)
244 arrayUesDown = absData.convertStringtoList1(objAntennaDown.ues)
245 else:
245 else:
246 arrayUesDown = arrayUes
246 arrayUesDown = arrayUes
247
247
248 return render_to_response('abscontrol/editPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
248 return render_to_response('abscontrol/editPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
249 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
249 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
250 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
250 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
251 'arrayAntennaUp' : arrayAntennaUp, 'arrayTxUp' : arrayTxUp,
251 'arrayAntennaUp' : arrayAntennaUp, 'arrayTxUp' : arrayTxUp,
252 'arrayRxUp' : arrayRxUp, 'arrayRxDown' : arrayRxDown,
252 'arrayRxUp' : arrayRxUp, 'arrayRxDown' : arrayRxDown,
253 'arrayAntennaDown' : arrayAntennaDown, 'arrayTxDown' : arrayTxDown,
253 'arrayAntennaDown' : arrayAntennaDown, 'arrayTxDown' : arrayTxDown,
254 'arrayUesUp' : arrayUesUp, 'arrayUesDown' : arrayUesDown,
254 'arrayUesUp' : arrayUesUp, 'arrayUesDown' : arrayUesDown,
255 }, context_instance=RequestContext(request))
255 }, context_instance=RequestContext(request))
256
256
257 def savePattern(request, profile_id):
257 def savePattern(request, profile_id):
258 pattern_id = 0
258 pattern_id = 0
259 method = "save"
259 method = "save"
260
260
261 if 'pattern_id' in request.POST:
261 if 'pattern_id' in request.POST:
262 pattern_id = request.POST["pattern_id"]
262 pattern_id = request.POST["pattern_id"]
263 method = "update"
263 method = "update"
264
264
265 maxValuePattern = 0
265 maxValuePattern = 0
266 txtAntennaUp = request.POST["txtAntennaUp"]
266 txtAntennaUp = request.POST["txtAntennaUp"]
267 txtTxUp = request.POST["txtTxUp"]
267 txtTxUp = request.POST["txtTxUp"]
268 txtRxUp = request.POST["txtRxUp"]
268 txtRxUp = request.POST["txtRxUp"]
269 txtUesUp = request.POST["txtUesUp"]
269 txtUesUp = request.POST["txtUesUp"]
270 if "chkOnlyRxUp" in request.POST:
271 chkOnlyRxUp = request.POST["chkOnlyRxUp"]
272 else:
273 chkOnlyRxUp = 0
270
274
271 txtAntennaDown = request.POST["txtAntennaDown"]
275 txtAntennaDown = request.POST["txtAntennaDown"]
272 txtTxDown = request.POST["txtTxDown"]
276 txtTxDown = request.POST["txtTxDown"]
273 txtRxDown = request.POST["txtRxDown"]
277 txtRxDown = request.POST["txtRxDown"]
274 txtUesDown = request.POST["txtUesDown"]
278 txtUesDown = request.POST["txtUesDown"]
279 if "chkOnlyRxDown" in request.POST:
280 chkOnlyRxDown = request.POST["chkOnlyRxDown"]
281 else:
282 chkOnlyRxDown = 0
275
283
276 mode = request.POST["mode"]
284 mode = request.POST["mode"]
277
285
278 if method == "save":
286 if method == "save":
279 objProfile = Profile.objects.get(pk=profile_id)
287 objProfile = Profile.objects.get(pk=profile_id)
280 lsPatterns = objProfile.pattern_set.all()
288 lsPatterns = objProfile.pattern_set.all()
281 if len(lsPatterns) > 0:
289 if len(lsPatterns) > 0:
282 for element in lsPatterns:
290 for element in lsPatterns:
283 if element.value > maxValuePattern:
291 if element.value > maxValuePattern:
284 maxPattern = element.value
292 maxPattern = element.value
285 else:
293 else:
286 maxPattern = 0
294 maxPattern = 0
287
295
288 if maxPattern < 10 :
296 if maxPattern < 10 :
289 newValuePattern = maxPattern + 1
297 newValuePattern = maxPattern + 1
290 newpattern = objProfile.pattern_set.create(value=newValuePattern)
298 newpattern = objProfile.pattern_set.create(value=newValuePattern)
291 newpattern.antennaup_set.create(value=txtAntennaUp,tx=txtTxUp,rx=txtRxUp,ues=txtUesUp)
299 newpattern.antennaup_set.create(value=txtAntennaUp,tx=txtTxUp,rx=txtRxUp,ues=txtUesUp,only_rx=chkOnlyRxUp)
292 newpattern.antennadown_set.create(value=txtAntennaDown,tx=txtTxDown,rx=txtRxDown,ues=txtUesDown)
300 newpattern.antennadown_set.create(value=txtAntennaDown,tx=txtTxDown,rx=txtRxDown,ues=txtUesDown,only_rx=chkOnlyRxDown)
293 error = 0
301 error = 0
294 else:
302 else:
295 error = 1 # Can not add more patterns
303 error = 1 # Can not add more patterns
296
304
297 if mode == "e":
305 if mode == "e":
298 newurl = '/abscontrol/%d/edit/%d' % (int(profile_id), newpattern.id)
306 newurl = '/abscontrol/%d/edit/%d' % (int(profile_id), newpattern.id)
299 else:
307 else:
300 newurl = '/abscontrol/%d/view/%d' % (int(profile_id), newpattern.id)
308 newurl = '/abscontrol/%d/view/%d' % (int(profile_id), newpattern.id)
301 else:
309 else:
302 txtAntennaUpId = request.POST["txtAntennaUpId"]
310 txtAntennaUpId = request.POST["txtAntennaUpId"]
303 objAntennaUp = AntennaUp.objects.get(pk=txtAntennaUpId)
311 objAntennaUp = AntennaUp.objects.get(pk=txtAntennaUpId)
304 objAntennaUp.value = txtAntennaUp
312 objAntennaUp.value = txtAntennaUp
305 objAntennaUp.tx = txtTxUp
313 objAntennaUp.tx = txtTxUp
306 objAntennaUp.rx = txtRxUp
314 objAntennaUp.rx = txtRxUp
307 objAntennaUp.ues = txtUesUp
315 objAntennaUp.ues = txtUesUp
316 objAntennaUp.only_rx = chkOnlyRxUp
308 objAntennaUp.save()
317 objAntennaUp.save()
309
318
310 txtAntennaDownId = request.POST["txtAntennaDownId"]
319 txtAntennaDownId = request.POST["txtAntennaDownId"]
311 objAntennaDown = AntennaDown.objects.get(pk=txtAntennaDownId)
320 objAntennaDown = AntennaDown.objects.get(pk=txtAntennaDownId)
312 objAntennaDown.value = txtAntennaDown
321 objAntennaDown.value = txtAntennaDown
313 objAntennaDown.tx = txtTxDown
322 objAntennaDown.tx = txtTxDown
314 objAntennaDown.rx = txtRxDown
323 objAntennaDown.rx = txtRxDown
315 objAntennaDown.ues = txtUesDown
324 objAntennaDown.ues = txtUesDown
325 objAntennaDown.only_rx = chkOnlyRxDown
316 objAntennaDown.save()
326 objAntennaDown.save()
317
327
318 if mode == "e":
328 if mode == "e":
319 newurl = '/abscontrol/%d/edit/%d' % (int(profile_id), int(pattern_id))
329 newurl = '/abscontrol/%d/edit/%d' % (int(profile_id), int(pattern_id))
320 else:
330 else:
321 newurl = '/abscontrol/%d/view/%d' % (int(profile_id), int(pattern_id))
331 newurl = '/abscontrol/%d/view/%d' % (int(profile_id), int(pattern_id))
322
332
323 return redirect(newurl)
333 return redirect(newurl)
324
334
325 def viewPattern(request, profile_id, pattern_id):
335 def viewPattern(request, profile_id, pattern_id):
336 objProfileActive = None
337 objPatternActive = None
326
338
327 profile_list = Profile.objects.filter(state=1)
339 profile_list = Profile.objects.filter(state=1)
328 objProfile = Profile.objects.get(pk=profile_id)
340 objProfile = Profile.objects.get(pk=profile_id)
329
341
330 patternChoosen = Pattern.objects.get(pk=pattern_id)
342 patternChoosen = Pattern.objects.get(pk=pattern_id)
331
343
332 objAntennaUp = patternChoosen.antennaup_set.get()
344 objAntennaUp = patternChoosen.antennaup_set.get()
333 objAntennaDown = patternChoosen.antennadown_set.get()
345 objAntennaDown = patternChoosen.antennadown_set.get()
334
346
335 lsPatterns = objProfile.pattern_set.all()
347 lsPatterns = objProfile.pattern_set.all()
336
348
337 lsProfilesActive = Profile.objects.filter(is_active=1)
349 lsProfilesActive = Profile.objects.filter(is_active=1)
338 if len(lsProfilesActive) > 0:
350 if len(lsProfilesActive) > 0:
339 objProfileActive = Profile.objects.get(is_active=1)
351 objProfileActive = Profile.objects.get(is_active=1)
340
352
341 lsPatternsActive = Pattern.objects.filter(is_active=1)
353 lsPatternsActive = Pattern.objects.filter(is_active=1)
342 if len(lsPatternsActive) > 0:
354 if len(lsPatternsActive) > 0:
343 objPatternActive = Pattern.objects.get(is_active=1)
355 objPatternActive = Pattern.objects.get(is_active=1)
344
356
345 return render_to_response('abscontrol/viewPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
357 return render_to_response('abscontrol/viewPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
346 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
358 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
347 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
359 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
348 'profileActive' : objProfileActive, 'patternActive' : objPatternActive,
360 'profileActive' : objProfileActive, 'patternActive' : objPatternActive,
349 }, context_instance=RequestContext(request))
361 }, context_instance=RequestContext(request))
350
362
351 def deletePattern(request, profile_id, pattern_id):
363 def deletePattern(request, profile_id, pattern_id):
352 newurl = '/abscontrol/edit/%d' % int(profile_id)
364 newurl = '/abscontrol/edit/%d' % int(profile_id)
353
365
354 return redirect(newurl)
366 return redirect(newurl)
355
367
356 def importProfile(request):
368 def importProfile(request):
357 profile_list = Profile.objects.filter(state=1)
369 profile_list = Profile.objects.filter(state=1)
358 return render_to_response('abscontrol/import.html', {'profile_list': profile_list,}, context_instance=RequestContext(request))
370 return render_to_response('abscontrol/import.html', {'profile_list': profile_list,}, context_instance=RequestContext(request))
359
371
360 def upload(request):
372 def upload(request):
361 profile_list = Profile.objects.filter(state=1)
373 profile_list = Profile.objects.filter(state=1)
362 if request.method == 'POST':
374 if request.method == 'POST':
363 txtFilename = request.FILES['txtFile']
375 txtFilename = request.FILES['txtFile']
364 if txtFilename:
376 if txtFilename:
365 destination = open('/tmp/'+txtFilename.name, 'wb+')
377 destination = open('/tmp/'+txtFilename.name, 'wb+')
366 for chunk in txtFilename.chunks():
378 for chunk in txtFilename.chunks():
367 destination.write(chunk)
379 destination.write(chunk)
368 destination.close()
380 destination.close()
369 filename = '/tmp/'+txtFilename.name
381 filename = '/tmp/'+txtFilename.name
370 readFile = readABSFile(filename)
382 readFile = readABSFile(filename)
371 expName, num_patterns, patterns = readFile.getMetadata()
383 expName, num_patterns, patterns = readFile.getMetadata()
372
384
373 if expName != "" and num_patterns > 0:
385 if expName != "" and num_patterns > 0:
374 if len(Profile.objects.filter(name__iexact=expName)) > 0:
386 if len(Profile.objects.filter(name__iexact=expName)) > 0:
375 txtError = "Experiment's name found."
387 txtError = "Experiment's name found."
376 return render_to_response('abscontrol/error.html', {'profile_list': profile_list,
388 return render_to_response('abscontrol/error.html', {'profile_list': profile_list,
377 'txtError' : txtError, },
389 'txtError' : txtError, },
378 context_instance=RequestContext(request))
390 context_instance=RequestContext(request))
379 else:
391 else:
380 newprofile = Profile(name=expName)
392 newprofile = Profile(name=expName)
381 newprofile.save()
393 newprofile.save()
382 newprofile.state = 1
394 newprofile.state = 1
383
395
384 for element in patterns:
396 for element in patterns:
385 newpattern = newprofile.pattern_set.create(value=element["number"])
397 newpattern = newprofile.pattern_set.create(value=element["number"])
386 newpattern.antennaup_set.create(value=element["up"])
398 newpattern.antennaup_set.create(value=element["up"])
387 newpattern.antennadown_set.create(value=element["down"])
399 newpattern.antennadown_set.create(value=element["down"])
388
400
389 newprofile.save()
401 newprofile.save()
390
402
391 newurl = '/abscontrol/edit/%d' % int(newprofile.id)
403 newurl = '/abscontrol/edit/%d' % int(newprofile.id)
392 return redirect(newurl)
404 return redirect(newurl)
393 else:
405 else:
394 txtError = "Experiment's name not found or the number of patterns is 0."
406 txtError = "Experiment's name not found or the number of patterns is 0."
395 return render_to_response('abscontrol/error.html', {'profile_list': profile_list,
407 return render_to_response('abscontrol/error.html', {'profile_list': profile_list,
396 'txtError' : txtError, },
408 'txtError' : txtError, },
397 context_instance=RequestContext(request))
409 context_instance=RequestContext(request))
398 else:
410 else:
399 txtError = "No file."
411 txtError = "No file."
400
412
401 return render_to_response('abscontrol/error.html', {'profile_list': profile_list, 'txtError' : txtError, },
413 return render_to_response('abscontrol/error.html', {'profile_list': profile_list, 'txtError' : txtError, },
402 context_instance=RequestContext(request))
414 context_instance=RequestContext(request))
403
415
404 def getImgfromOverJRO(profile_id, objAntenna):
416 def getImgfromOverJRO(profile_id, objAntenna):
405 objProfile = Profile.objects.get(pk=profile_id)
417 objProfile = Profile.objects.get(pk=profile_id)
406 exp_name = objProfile.name
418 exp_name = objProfile.name
407 phase_tx = objAntenna.value
419 phase_tx = objAntenna.value
408 gain_tx = objAntenna.tx
420 gain_tx = objAntenna.tx
409 gain_rx = objAntenna.rx
421 gain_rx = objAntenna.rx
410 ues_tx = objAntenna.ues
422 ues_tx = objAntenna.ues
411 just_rx = objAntenna.only_rx
423 just_rx = objAntenna.only_rx
412
424
413 overjro = OverJRO()
425 overjro = OverJRO()
414 overjro.setParameters(settings.MEDIA_ROOT, exp_name, phase_tx, gain_tx, gain_rx, ues_tx, just_rx)
426 overjro.setParameters(settings.MEDIA_ROOT, exp_name, phase_tx, gain_tx, gain_rx, ues_tx, just_rx)
415 contentFile = overjro.setTextContent()
427 contentFile = overjro.setTextContent()
416 finalpath = overjro.saveFile(contentFile)
428 finalpath = overjro.saveFile(contentFile)
417
429
418 currentdate = datetime.today()
430 currentdate = datetime.today()
419 newOverJro = overJroShow()
431 newOverJro = overJroShow()
420 newOverJro.setInputParameters(settings.MEDIA_ROOT, currentdate, finalpath)
432 newOverJro.setInputParameters(settings.MEDIA_ROOT, currentdate, finalpath)
421 newOverJro.setupParameters()
433 newOverJro.setupParameters()
422 newOverJro.execute()
434 newOverJro.execute()
423 path = newOverJro.getPlot()
435 path = newOverJro.getPlot()
424
436
425 return path
437 return path
426
438
427 def overJROUp(request, profile_id, pattern_id, antenna_id):
439 def overJROUp(request, profile_id, pattern_id, antenna_id):
428 objAntenna = AntennaUp.objects.get(pk=antenna_id)
440 objAntenna = AntennaUp.objects.get(pk=antenna_id)
429 img_path = getImgfromOverJRO(profile_id, objAntenna)
441 img_path = getImgfromOverJRO(profile_id, objAntenna)
430 filename = os.path.split(img_path)[1]
442 filename = os.path.split(img_path)[1]
431 return render_to_response('abscontrol/overjro_up.html', {'img_up': filename,'antennaUp': objAntenna,},
443 return render_to_response('abscontrol/overjro_up.html', {'img_up': filename,'antennaUp': objAntenna,},
432 context_instance=RequestContext(request))
444 context_instance=RequestContext(request))
433
445
434 def overJRODown(request, profile_id, pattern_id, antenna_id):
446 def overJRODown(request, profile_id, pattern_id, antenna_id):
435 objAntenna = AntennaDown.objects.get(pk=antenna_id)
447 objAntenna = AntennaDown.objects.get(pk=antenna_id)
436 img_path = getImgfromOverJRO(profile_id, objAntenna)
448 img_path = getImgfromOverJRO(profile_id, objAntenna)
437 filename = os.path.split(img_path)[1]
449 filename = os.path.split(img_path)[1]
438 return render_to_response('abscontrol/overjro_down.html', {'img_down': filename, 'antennaDown': objAntenna,},
450 return render_to_response('abscontrol/overjro_down.html', {'img_down': filename, 'antennaDown': objAntenna,},
439 context_instance=RequestContext(request))
451 context_instance=RequestContext(request))
440
452
441 def export(request, profile_id):
453 def export(request, profile_id):
442 listPatterns = []
454 listPatterns = []
443 objProfile = Profile.objects.get(pk=profile_id)
455 objProfile = Profile.objects.get(pk=profile_id)
444 exp_name = objProfile.name
456 exp_name = objProfile.name
445 lsPatterns = objProfile.pattern_set.all()
457 lsPatterns = objProfile.pattern_set.all()
446 for element in lsPatterns:
458 for element in lsPatterns:
447 objAntennaUp = element.antennaup_set.get()
459 objAntennaUp = element.antennaup_set.get()
448 objAntennaDown = element.antennadown_set.get()
460 objAntennaDown = element.antennadown_set.get()
449 dicPatterns = {"number" : element.value, "up" : objAntennaUp.value, "down" : objAntennaDown.value}
461 dicPatterns = {"number" : element.value, "up" : objAntennaUp.value, "down" : objAntennaDown.value}
450 listPatterns.append(dicPatterns)
462 listPatterns.append(dicPatterns)
451
463
452 absFile = saveABSFile()
464 absFile = saveABSFile()
453 absFile.setParameters(settings.MEDIA_ROOT, exp_name, listPatterns)
465 absFile.setParameters(settings.MEDIA_ROOT, exp_name, listPatterns)
454 filename, filesize = absFile.save()
466 filename, filesize = absFile.save()
455
467
456 wrapper = FileWrapper( open( filename, "r" ) )
468 wrapper = FileWrapper( open( filename, "r" ) )
457 content_type = mimetypes.guess_type( filename )[0]
469 content_type = mimetypes.guess_type( filename )[0]
458
470
459 response = HttpResponse(wrapper, content_type = content_type)
471 response = HttpResponse(wrapper, content_type = content_type)
460 response['Content-Description'] = 'File Transfer'
472 response['Content-Description'] = 'File Transfer'
461 response['Content-Disposition'] = 'attachment; filename=%s' % smart_str(filename)
473 response['Content-Disposition'] = 'attachment; filename=%s' % smart_str(filename)
462 response['Content-Transfer-Encoding'] = 'binary'
474 response['Content-Transfer-Encoding'] = 'binary'
463 response['Expires'] = '0'
475 response['Expires'] = '0'
464 response['Cache-Control'] = 'must-revalidate'
476 response['Cache-Control'] = 'must-revalidate'
465 response['Pragma'] = 'public'
477 response['Pragma'] = 'public'
466 response['Content-Length'] = '%s' % str(filesize)
478 response['Content-Length'] = '%s' % str(filesize)
467 response['X-Sendfile'] = '%s' % smart_str(filename)
479 response['X-Sendfile'] = '%s' % smart_str(filename)
468
480
469 return response
481 return response
470
482
471 def send(request, profile_id):
483 def send(request, profile_id):
472 listPatterns = []
484 listPatterns = []
473 objProfile = Profile.objects.get(pk=profile_id)
485 objProfile = Profile.objects.get(pk=profile_id)
474 exp_name = objProfile.name
486 exp_name = objProfile.name
475
487
476 lsPatterns = objProfile.pattern_set.all()
488 lsPatterns = objProfile.pattern_set.all()
477 for element in lsPatterns:
489 for element in lsPatterns:
478 objAntennaUp = element.antennaup_set.get()
490 objAntennaUp = element.antennaup_set.get()
479 objAntennaDown = element.antennadown_set.get()
491 objAntennaDown = element.antennadown_set.get()
480 dicPatterns = {"number" : element.value, "up" : objAntennaUp.value, "down" : objAntennaDown.value}
492 dicPatterns = {"number" : element.value, "up" : objAntennaUp.value, "down" : objAntennaDown.value}
481 listPatterns.append(dicPatterns)
493 listPatterns.append(dicPatterns)
482
494
483 absFile = saveABSFile()
495 absFile = saveABSFile()
484 absFile.setParameters(settings.MEDIA_ROOT, exp_name, listPatterns)
496 absFile.setParameters(settings.MEDIA_ROOT, exp_name, listPatterns)
485 filename, filesize = absFile.save()
497 filename, filesize = absFile.save()
486
498
487 apiclient = sendFile()
499 apiclient = sendFile()
488 apiclient.execute(filename)
500 apiclient.execute(filename)
489 output = apiclient.getOutput()
501 output = apiclient.getOutput()
490
502
491 if output == "OK":
503 if output == "OK":
492 message = "File sent successfully."
504 message = "File sent successfully."
493 lsProfilesActive = Profile.objects.filter(is_active=1)
505 lsProfilesActive = Profile.objects.filter(is_active=1)
494 if len(lsProfilesActive) > 0:
506 if len(lsProfilesActive) > 0:
495 objProfileActive = Profile.objects.get(is_active=1)
507 objProfileActive = Profile.objects.get(is_active=1)
496 objProfileActive.is_active = 0
508 objProfileActive.is_active = 0
497 objProfileActive.save()
509 objProfileActive.save()
498
510
499 lsPatternsActive = Pattern.objects.filter(is_active=1)
511 lsPatternsActive = Pattern.objects.filter(is_active=1)
500 if len(lsPatternsActive) > 0:
512 if len(lsPatternsActive) > 0:
501 objPatternActive = Pattern.objects.get(is_active=1)
513 objPatternActive = Pattern.objects.get(is_active=1)
502 objPatternActive.is_active = 0
514 objPatternActive.is_active = 0
503 objPatternActive.save()
515 objPatternActive.save()
504
516
505 objProfile.hits += 1
517 objProfile.hits += 1
506 objProfile.is_active = 1
518 objProfile.is_active = 1
507 objProfile.save()
519 objProfile.save()
508
520
509 pattern_value = 1
521 pattern_value = 1
510 patternChoosen = objProfile.pattern_set.get(value=pattern_value)
522 patternChoosen = objProfile.pattern_set.get(value=pattern_value)
511 patternChoosen.is_active = 1
523 patternChoosen.is_active = 1
512 patternChoosen.save()
524 patternChoosen.save()
513
525
514 newurl = '/abscontrol/view/%d' % int(profile_id)
526 newurl = '/abscontrol/view/%d' % int(profile_id)
515
527
516 return redirect(newurl)
528 return redirect(newurl)
517 else:
529 else:
518 message = "Error sending file."
530 message = "Error sending file."
519
531
520 profile_list = Profile.objects.all()
532 profile_list = Profile.objects.all()
521
533
522 return render_to_response('abscontrol/sendFile.html', {'message': message, "profile_list" : profile_list,
534 return render_to_response('abscontrol/sendFile.html', {'message': message, "profile_list" : profile_list,
523 'objProfile': objProfile,
535 'objProfile': objProfile,
524 }, context_instance=RequestContext(request))
536 }, context_instance=RequestContext(request))
525
537
526 def changePattern(request, profile_id, pattern_id):
538 def changePattern(request, profile_id, pattern_id):
527 patternChoosen = Pattern.objects.get(id=pattern_id)
539 patternChoosen = Pattern.objects.get(id=pattern_id)
528 beam = int(patternChoosen.value)-1
540 beam = int(patternChoosen.value)-1
529
541
530 apiclient = changeBeam()
542 apiclient = changeBeam()
531 apiclient.execute(str(beam))
543 apiclient.execute(str(beam))
532 output = apiclient.getOutput()
544 output = apiclient.getOutput()
533
545
534 if output == "OK":
546 if output == "OK":
535 lsPatternsActive = Pattern.objects.filter(is_active=1)
547 lsPatternsActive = Pattern.objects.filter(is_active=1)
536 if len(lsPatternsActive) > 0:
548 if len(lsPatternsActive) > 0:
537 objPatternActive = Pattern.objects.get(is_active=1)
549 objPatternActive = Pattern.objects.get(is_active=1)
538 objPatternActive.is_active = 0
550 objPatternActive.is_active = 0
539 objPatternActive.save()
551 objPatternActive.save()
540
552
541 patternChoosen.hits += 1
553 patternChoosen.hits += 1
542 patternChoosen.is_active = 1
554 patternChoosen.is_active = 1
543 patternChoosen.save()
555 patternChoosen.save()
544
556
545 newurl = '/abscontrol/%d/view/%d/' % (int(profile_id), int(pattern_id))
557 newurl = '/abscontrol/%d/view/%d/' % (int(profile_id), int(pattern_id))
546 return redirect(newurl)
558 return redirect(newurl)
547 else:
559 else:
548 message = "Error sending file."
560 message = "Error sending file."
549 profile_list = Profile.objects.all()
561 profile_list = Profile.objects.all()
550 return render_to_response('abscontrol/sendFile.html', {'message': message, "profile_list" : profile_list,
562 return render_to_response('abscontrol/sendFile.html', {'message': message, "profile_list" : profile_list,
551 }, context_instance=RequestContext(request))
563 }, context_instance=RequestContext(request))
552 No newline at end of file
564
@@ -1,724 +1,746
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 {
9 body {
10 padding: 0;
10 padding: 0;
11 margin: 0;
11 margin: 0;
12 font-size: 12px; }
12 font-size: 12px; }
13
13
14 header {
14 header {
15 width: 980px;
15 width: 980px;
16 height: 50px;
16 height: 50px;
17 text-align: center;
17 text-align: center;
18 line-height: 50px;
18 line-height: 50px;
19 border: 0px solid #fcc !important; }
19 border: 0px solid #fcc !important; }
20
20
21 #schema {
21 #schema {
22 margin: 0 auto;
22 margin: 0 auto;
23 width: 980px;
23 width: 980px;
24 padding: 10px 10px;
24 padding: 10px 10px;
25 border: 0px solid #f00 !important; }
25 border: 0px solid #f00 !important; }
26
26
27 #content {
27 #content {
28 margin: 2px 0px 0px 0px;
28 margin: 2px 0px 0px 0px;
29 border: 0px solid #1cc !important; }
29 border: 0px solid #1cc !important; }
30
30
31 #topcolumn {
31 #topcolumn {
32 float: left;
32 float: left;
33 width: 980px;
33 width: 980px;
34 height: 40px;
34 height: 40px;
35 line-height: 35px;
35 line-height: 35px;
36 margin: 2px 0px;
36 margin: 2px 0px;
37 border: 1px solid #ddd !important;
37 border: 1px solid #ddd !important;
38 box-shadow: 2px 2px 5px #888; }
38 box-shadow: 2px 2px 5px #888; }
39
39
40 #activeProfileBar {
40 #activeProfileBar {
41 float: left;
41 float: left;
42 width: 980px;
42 width: 980px;
43 margin: 0px 0px;
43 margin: 0px 0px;
44 height: 25px;
44 height: 25px;
45 border: 1px solid #ddd !important;
45 border: 1px solid #ddd !important;
46 box-shadow: 1px 1px 5px #ccc; }
46 box-shadow: 1px 1px 5px #ccc; }
47
47
48 #maincolumn {
48 #maincolumn {
49 float: left;
49 float: left;
50 width: 980px;
50 width: 980px;
51 margin: 2px 0px 0px 0px;
51 margin: 2px 0px 0px 0px;
52 padding: 2px 0px 6px 0px;
52 padding: 2px 0px 6px 0px;
53 border: 1px solid #ddd !important;
53 border: 1px solid #ddd !important;
54 box-shadow: 2px 2px 5px #666; }
54 box-shadow: 2px 2px 5px #666; }
55
55
56 footer {
56 footer {
57 height: 30px;
57 height: 30px;
58 line-height: 30px;
58 line-height: 30px;
59 text-align: center;
59 text-align: center;
60 margin: 0px 0px;
60 margin: 0px 0px;
61 border: 0px solid #200 !important;
61 border: 0px solid #200 !important;
62 box-shadow: 2px 2px 5px #888; }
62 box-shadow: 2px 2px 5px #888; }
63
63
64 .cleardivs {
64 .cleardivs {
65 clear: both;
65 clear: both;
66 border: 0px solid #400;
66 border: 0px solid #400;
67 height: 0px; }
67 height: 0px; }
68
68
69 textarea {
69 textarea {
70 resize: none;
70 resize: none;
71 overflow: hidden; }
71 overflow: hidden; }
72
72
73 /****************************************************************************************/
73 /****************************************************************************************/
74 /****** ESTILOS GENERALES *****************/
74 /****** ESTILOS GENERALES *****************/
75 /****************************************************************************************/
75 /****************************************************************************************/
76 a {
76 a {
77 font-family: 'Droid Sans', sans-serif;
77 font-family: 'Droid Sans', sans-serif;
78 text-decoration: none;
78 text-decoration: none;
79 color: #1494F6; }
79 color: #1494F6; }
80
80
81 .mnu {
81 .mnu {
82 height: 22px;
82 height: 22px;
83 border: 0px solid #c55 !important; }
83 border: 0px solid #c55 !important; }
84
84
85 .mnu li {
85 .mnu li {
86 display:inline; }
86 display:inline; }
87
87
88 .MnuVertical, .MnuHorizontal {
88 .MnuVertical, .MnuHorizontal {
89 font-family: 'Droid Sans', sans-serif;
89 font-family: 'Droid Sans', sans-serif;
90 font-size: inherit;
90 font-size: inherit;
91 font-style: normal;
91 font-style: normal;
92 text-shadow: 2px 2px #eee; }
92 text-shadow: 2px 2px #eee; }
93
93
94 .MnuHorizontal ul {
94 .MnuHorizontal ul {
95 list-style: none;
95 list-style: none;
96 list-style-type: none;
96 list-style-type: none;
97 margin: 0; }
97 margin: 0; }
98
98
99 /*.MnuHorizontal{
99 /*.MnuHorizontal{
100 display: -webkit-box;
100 display: -webkit-box;
101 -webkit-box-orient:horizontal; }
101 -webkit-box-orient:horizontal; }
102
102
103 .MnuHorizontal a{
103 .MnuHorizontal a{
104 display:block;
104 display:block;
105 padding:10px;
105 padding:10px;
106 -webkit-box-flex:1;
106 -webkit-box-flex:1;
107 text-align:center; }*/
107 text-align:center; }*/
108
108
109 .link-disabled {
109 .link-disabled {
110 color: #666;
110 color: #666;
111 text-decoration: None;
111 text-decoration: None;
112 cursor: default; }
112 cursor: default; }
113
113
114 /****************************************************************************************/
114 /****************************************************************************************/
115 /****** MENU DE NAVEGACION DE PERFILES *************/
115 /****** MENU DE NAVEGACION DE PERFILES *************/
116 /****************************************************************************************/
116 /****************************************************************************************/
117 #infoProfiles {
117 #infoProfiles {
118 float: left;
118 float: left;
119 width: 300px;
119 width: 300px;
120 margin: 0px;
120 margin: 0px;
121 padding: 2px 0px;
121 padding: 2px 0px;
122 border: 0px solid #1cc !important; }
122 border: 0px solid #1cc !important; }
123
123
124 #infoProfiles label {
124 #infoProfiles label {
125 padding: 10px 10px 10px 12px;
125 padding: 10px 10px 10px 12px;
126 margin: 10px 0;
126 margin: 10px 0;
127 font-family: 'Droid Sans', sans-serif;
127 font-family: 'Droid Sans', sans-serif;
128 /*font-family: 'Roboto Condensed', sans-serif;*/
128 /*font-family: 'Roboto Condensed', sans-serif;*/
129 /*letter-spacing: 0.046em;*/ }
129 /*letter-spacing: 0.046em;*/ }
130
130
131 #infoProfiles select {
131 #infoProfiles select {
132 padding: 4px 0px; margin: 0;
132 padding: 4px 0px; margin: 0;
133 font-family: 'Droid Sans', sans-serif;
133 font-family: 'Droid Sans', sans-serif;
134 font-size: 12px;
134 font-size: 12px;
135 letter-spacing: 0.006em;
135 letter-spacing: 0.006em;
136 width: 200px; }
136 width: 200px; }
137
137
138 #mnuProfiles {
138 #mnuProfiles {
139 margin: 0;
139 margin: 0;
140 float: right;
140 float: right;
141 padding: 2px 10px;
141 padding: 2px 10px;
142 border: 0px solid #1494F6 !important; }
142 border: 0px solid #1494F6 !important; }
143
143
144 #mnuProfiles ul {
144 #mnuProfiles ul {
145 list-style: none;
145 list-style: none;
146 list-style-type: none;
146 list-style-type: none;
147 margin: 0;
147 margin: 0;
148 padding-left: 20px;
148 padding-left: 20px;
149 border: 0px solid #f00 !important; }
149 border: 0px solid #f00 !important; }
150
150
151 #mnuProfiles li {
151 #mnuProfiles li {
152 width: 80px;
152 width: 80px;
153 float: left;
153 float: left;
154 padding: 2px;
154 padding: 2px;
155 border: 0px solid #c55 !important; }
155 border: 0px solid #c55 !important; }
156
156
157 #mnuProfiles a {
157 #mnuProfiles a {
158 font-weight: normal;
158 font-weight: normal;
159 color: #1494F6;
159 color: #1494F6;
160 display: block;
160 display: block;
161 text-align: center;
161 text-align: center;
162 border-bottom: 1px solid #1494F6 !important;
162 border-bottom: 1px solid #1494F6 !important;
163 text-decoration: none;
163 text-decoration: none;
164 padding: 0px 4px;
164 padding: 0px 4px;
165 line-height: 18px;
165 line-height: 18px;
166 margin: 6px; }
166 margin: 6px; }
167
167
168 /****************************************************************************************/
168 /****************************************************************************************/
169 /****** BARRA DE PERFILES ACTIVOS *************/
169 /****** BARRA DE PERFILES ACTIVOS *************/
170 /****************************************************************************************/
170 /****************************************************************************************/
171
171
172 #activeProfileBar label, a{
172 #activeProfileBar label, a{
173 line-height: 20px;
173 line-height: 20px;
174 float: left;
174 float: left;
175 letter-spacing: 0.01em;
175 letter-spacing: 0.01em;
176 padding: 3px 12px;
176 padding: 3px 12px;
177 border: 0px solid #f00 !important; }
177 border: 0px solid #f00 !important; }
178
178
179 .titleBar {
179 .titleBar {
180 color: #333;
180 color: #333;
181 margin-left: 2px;
181 margin-left: 2px;
182 text-align: right; }
182 text-align: right; }
183
183
184 .ActiveProfile, .ActivePattern, .lnkActiveProfile {
184 .ActiveProfile, .ActivePattern, .lnkActiveProfile {
185 color: #001bf4;
185 color: #001bf4;
186 margin: 0px 2px;
186 margin: 0px 2px;
187 text-align: left;
187 text-align: left;
188 text-decoration: None; }
188 text-decoration: None; }
189
189
190 .navbarsep{
190 .navbarsep{
191 float: left; }
191 float: left; }
192
192
193 /****************************************************************************************/
193 /****************************************************************************************/
194 /******** FORMULARIO DE PERFILES *************************************/
194 /******** FORMULARIO DE PERFILES *************************************/
195 /****************************************************************************************/
195 /****************************************************************************************/
196 #divProfile {
196 #divProfile {
197 margin: 10px 0px;
197 margin: 10px 0px;
198 padding: 10px 10px;
198 padding: 10px 10px;
199 width: 500px;
199 width: 500px;
200 border: 0px solid #dff !important; }
200 border: 0px solid #dff !important; }
201
201
202 #divProfile label,input[type=text],input[type=file] {
202 #divProfile label,input[type=text],input[type=file] {
203 font-family: 'Open Sans', sans-serif;
203 font-family: 'Open Sans', sans-serif;
204 font-size: inherit; }
204 font-size: inherit; }
205
205
206 #divProfile label {
206 #divProfile label {
207 float: left;
207 float: left;
208 text-align: right;
208 text-align: right;
209 width: 120px;
209 width: 120px;
210 padding: 3px 10px 3px 10px;
210 padding: 3px 10px 3px 10px;
211 line-height: 20px;
211 line-height: 20px;
212 border: 0px solid #d85 !important;
212 border: 0px solid #d85 !important;
213 }
213 }
214
214
215 #divProfile input[type=text] {
215 #divProfile input[type=text] {
216 letter-spacing: 0.08em;
216 letter-spacing: 0.08em;
217 padding: 2px 10px 2px 10px;
217 padding: 2px 10px 2px 10px;
218 width: 200px;
218 width: 200px;
219 }
219 }
220
220
221 #divProfile input[type=text]:FOCUS {
221 #divProfile input[type=text]:FOCUS {
222 border: 1px solid #faa !important;
222 border: 1px solid #faa !important;
223 border-radius: 0.26em;
223 border-radius: 0.26em;
224 box-shadow: 2px 2px 5px #fbb;
224 box-shadow: 2px 2px 5px #fbb;
225 }
225 }
226
226
227 .lblProfile {
227 .lblProfile {
228 width: 200px; }
228 width: 200px; }
229
229
230 #divPattern textarea,input[type=text],label,input[type=file],input[type=button],input[type=submit] {
230 #divPattern textarea,input[type=text],label,input[type=file],input[type=button],input[type=submit] {
231 font-family: 'Roboto Condensed', sans-serif;
231 font-family: 'Roboto Condensed', sans-serif;
232 font-size: inherit; }
232 font-size: inherit; }
233
233
234 .antenna, .NewAntenna {
234 .antenna, .NewAntenna {
235 box-shadow: 1px 1px 2px #666;
235 box-shadow: 1px 1px 2px #666;
236 padding: 5px;
236 padding: 5px;
237 margin: 10px auto;
237 margin: 10px auto;
238 display: block;
238 display: block;
239 border: 0px solid #fee !important; }
239 border: 0px solid #fee !important; }
240
240
241 .antenna {
241 .antenna {
242 width: 520px; }
242 width: 520px; }
243
243
244 .NewAntenna {
244 .NewAntenna {
245 width: 750px;
245 width: 750px;
246 border: 0px solid #f00 !important; }
246 border: 0px solid #f00 !important; }
247
247
248 .flsAntenna, .NewFlsAntenna {
248 .flsAntenna, .NewFlsAntenna {
249 margin: 0;
249 margin: 0;
250 padding: 0px;
250 padding: 0px;
251 border: 1px solid #fee !important; }
251 border: 1px solid #fee !important; }
252
252
253 .flsAntenna {
253 .flsAntenna {
254 width: 510px; }
254 width: 510px; }
255
255
256 .NewFlsAntenna {
256 .NewFlsAntenna {
257 width: 100%; }
257 width: 100%; }
258
258
259 .legendAntenna {
259 .legendAntenna {
260 font-family: 'Roboto Condensed', sans-serif;
260 font-family: 'Roboto Condensed', sans-serif;
261 font-size: inherit;
261 font-size: inherit;
262 text-align: left;
262 text-align: left;
263 margin-left: 10px; }
263 margin-left: 10px; }
264
264
265 .infoAntenna {
265 .infoAntenna {
266 width: 500px;
266 width: 500px;
267 float: left;
267 float: left;
268 border: 0px solid #f00 !important; }
268 border: 0px solid #f00 !important; }
269
269
270 .overJRO {
270 .overJRO {
271 width: 250px;
271 width: 250px;
272 float: left;
272 float: left;
273 margin: 0px 5px;
273 margin: 0px 5px;
274 border: 0px solid #1cc !important; }
274 border: 0px solid #1cc !important; }
275
275
276 .divAntenna, .NewDivAntenna, .NewDivTx {
276 .divAntenna, .NewDivAntenna, .NewDivTx {
277 float: left;
277 float: left;
278 margin: 10px;
278 margin: 10px;
279 border: 0px solid #fcc !important; }
279 border: 0px solid #fcc !important; }
280
280
281 .divAntenna {
281 .divAntenna {
282 width: 220px;
282 width: 220px;
283 border: 0px solid #fcc !important; }
283 border: 0px solid #fcc !important; }
284
284
285 .NewDivAntenna {
285 .NewDivAntenna {
286 border: 0px solid #fcc !important; }
286 border: 0px solid #fcc !important; }
287
287
288 .NewDivTx {
288 .NewDivTx {
289 border: 0px solid #fcc !important; }
289 border: 0px solid #fcc !important; }
290
290
291 .titleField {
291 .titleField {
292 display: block;
292 display: block;
293 text-align: center;
293 text-align: center;
294 font-family: 'Roboto Condensed', sans-serif;
294 font-family: 'Roboto Condensed', sans-serif;
295 letter-spacing: 0.086em; }
295 letter-spacing: 0.086em; }
296
296
297 .txtAntenna, .view-textAntenna {
297 .txtAntenna, .view-textAntenna {
298 width: 175px;
298 width: 175px;
299 max-width: 180px;
299 max-width: 180px;
300 height: 160px;
300 height: 160px;
301 max-height: 165px;
301 max-height: 165px;
302 background: #fdfdfb;
302 background: #fdfdfb;
303 border: 2px solid #eee !important;
303 border: 2px solid #eee !important;
304 text-align: justify;
304 text-align: justify;
305 margin: 0 auto;
305 margin: 0 auto;
306 line-height: 20px; }
306 line-height: 20px; }
307
307
308 .txtAntenna {
308 .txtAntenna {
309 padding: 4px;
309 padding: 4px;
310 }
310 }
311
311
312 .view-textAntenna {
312 .view-textAntenna {
313 padding: 2px;
313 padding: 2px;
314 font-family: "Ubuntu";
314 font-family: "Ubuntu";
315 font-size: inherit; }
315 font-size: inherit; }
316
316
317 .boxAntenna, .boxTR {
317 .boxAntenna, .boxTR {
318 border: 2px solid #eee !important;
318 border: 2px solid #eee !important;
319 text-align: center;
319 text-align: center;
320 display: block;
320 display: block;
321 float: left;
321 float: left;
322 margin: 0;
322 margin: 0;
323 padding: 0; }
323 padding: 0; }
324
324
325 .boxAntenna {
325 .boxAntenna {
326 padding: 3px; }
326 padding: 3px; }
327
327
328 .boxTR {
328 .boxTR {
329 padding: 3px; }
329 padding: 3px; }
330
330
331 .fullLine{
331 .fullLine{
332 font-size: 0.95em; }
332 font-size: 0.95em; }
333
333
334 .lineInputs, .lineInputsTx {
334 .lineInputs, .lineInputsTx {
335 text-align: left;
335 text-align: left;
336 line-height: 1.4em;
336 line-height: 1.4em;
337 padding: 0;
337 padding: 0;
338 margin: 0px;
338 margin: 0px;
339 display: block;
339 display: block;
340 float: left;
340 float: left;
341 border: 0px solid #1cc !important; }
341 border: 0px solid #1cc !important; }
342
342
343 .lineInputs {
343 .lineInputs {
344 /*width: 240px;*/
344 /*width: 240px;*/
345 border: 0px solid #1cc !important; }
345 border: 0px solid #1cc !important; }
346
346
347 .lineInputsTx {
347 .lineInputsTx {
348 /*width: 185px;*/
348 /*width: 185px;*/
349 border: 0px solid #1cc !important; }
349 border: 0px solid #1cc !important; }
350
350
351 .divValuesAntenna, .divValuesTx {
351 .divValuesAntenna, .divValuesTx {
352 float: left;
352 float: left;
353 display: block;
353 display: block;
354 margin: 0 auto;
354 margin: 0 auto;
355 border: 0px solid #bbb !important; }
355 border: 0px solid #bbb !important; }
356
356
357 .divValuesAntenna {
357 .divValuesAntenna {
358 /*width: 230px;*/
358 /*width: 230px;*/
359 border: 0px solid #2eb !important; }
359 border: 0px solid #2eb !important; }
360
360
361 .divValuesTx {
361 .divValuesTx {
362 /*width: 175px;*/
362 /*width: 175px;*/
363 border: 0px solid #bbb !important; }
363 border: 0px solid #bbb !important; }
364
364
365 .divValuesAntenna input[type=text], .divValuesTx input[type=text] {
365 .divValuesAntenna input[type=text], .divValuesTx input[type=text] {
366 border: 0px;
366 border: 0px;
367 border-bottom: 1px solid #666 !important;
367 border-bottom: 1px solid #666 !important;
368 line-height: 1.1em;
368 line-height: 1.1em;
369 font-family: 'Roboto Condensed', sans-serif; }
369 font-family: 'Roboto Condensed', sans-serif; }
370
370
371 .divValuesAntenna input[type=text] {
371 .divValuesAntenna input[type=text] {
372 width: 18px; }
372 width: 18px; }
373
373
374 .divValuesTx input[type=text]{
374 .divValuesTx input[type=text]{
375 width: 11px; }
375 width: 11px; }
376
376
377 .lblSign, .lblSignTx {
377 .lblSign, .lblSignTx {
378 font-family: 'Roboto Condensed', sans-serif;
378 font-family: 'Roboto Condensed', sans-serif;
379 color: #666;
379 color: #666;
380 float: left;
380 float: left;
381 margin: 0px;
381 margin: 0px;
382 border: 0px solid #bbb !important; }
382 border: 0px solid #bbb !important; }
383
383
384 .lblSignLeft {
384 .lblSignLeft {
385 font-family: 'Roboto Condensed', sans-serif;
385 font-family: 'Roboto Condensed', sans-serif;
386 color: #666;
386 color: #666;
387 float: left;
387 float: left;
388 margin: 0px 2px 0px 0px;
388 margin: 0px 2px 0px 0px;
389 padding: 0;
389 padding: 0;
390 border: 0px solid #f00 !important; }
390 border: 0px solid #f00 !important; }
391
391
392 .lblSignRight {
392 .lblSignRight {
393 font-family: 'Roboto Condensed', sans-serif;
393 font-family: 'Roboto Condensed', sans-serif;
394 color: #666;
394 color: #666;
395 float: left;
395 float: left;
396 margin: 0;
396 margin: 0;
397 padding: 0;
397 padding: 0;
398 border: 0px solid #f00 !important; }
398 border: 0px solid #f00 !important; }
399
399
400 .lblNewSignLeft, .lblNewSignRight {
400 .lblNewSignLeft, .lblNewSignRight {
401 font-family: 'Roboto Condensed', sans-serif;
401 font-family: 'Roboto Condensed', sans-serif;
402 color: #666;
402 color: #666;
403 float: left;
403 float: left;
404 padding: 0; }
404 padding: 0; }
405
405
406 .lblNewSignLeft {
406 .lblNewSignLeft {
407 margin: 0px 2px 0px 0px;
407 margin: 0px 2px 0px 0px;
408 border: 0px solid #f00 !important; }
408 border: 0px solid #f00 !important; }
409
409
410 .lblNewSignRight {
410 .lblNewSignRight {
411 margin: 0;
411 margin: 0;
412 border: 0px solid #f00 !important; }
412 border: 0px solid #f00 !important; }
413
413
414 .divTx {
414 .divTx {
415 display: block;
415 display: block;
416 float: left;
416 float: left;
417 margin: 10px;
417 margin: 10px;
418 border: 0px solid #f00 !important; }
418 border: 0px solid #f00 !important; }
419
419
420 .divTx label {
420 .divTx label {
421 display: block; }
421 display: block; }
422
422
423 .divTx textarea {
423 .divTx textarea {
424 width: 100px;
424 width: 100px;
425 max-width: 100px;
425 max-width: 100px;
426 height: 160px;
426 height: 160px;
427 max-height: 165px;
427 max-height: 165px;
428 text-align: justify;
428 text-align: justify;
429 border: 2px solid #eee !important;
429 border: 2px solid #eee !important;
430 font-family: "Ubuntu";
430 font-family: "Ubuntu";
431 font-size: inherit;
431 font-size: inherit;
432 line-height: 20px; }
432 line-height: 20px; }
433
433
434 .divTx p {
434 .divTx p {
435 width: 100px;
435 width: 100px;
436 max-width: 105px;
436 max-width: 105px;
437 height: 160px;
437 height: 160px;
438 max-height: 165px;
438 max-height: 165px;
439 background: #fdfdfb;
439 background: #fdfdfb;
440 padding: 2px;
440 padding: 2px;
441 border: 1px solid #eee !important;
441 border: 1px solid #eee !important;
442 font-family: 'Ubuntu', sans-serif;
442 font-family: 'Ubuntu', sans-serif;
443 font-size: inherit;
443 font-size: inherit;
444 text-align: justify;
444 text-align: justify;
445 margin: 0 auto;
445 margin: 0 auto;
446 line-height: 20px; }
446 line-height: 20px; }
447
447
448 .divUes {
448 .divUes {
449 display: block;
449 display: block;
450 margin: 10px; }
450 margin: 10px; }
451
451
452 .divUes input[type=text] {
452 .divUes input[type=text] {
453 width: 240px;
453 width: 240px;
454 max-width: 240px;
454 max-width: 240px;
455 font-family: 'Ubuntu', sans-serif;
455 font-family: 'Ubuntu', sans-serif;
456 font-size: inherit; }
456 font-size: inherit; }
457
457
458 .divNewUes {
458 .divNewUes {
459 width: 350px;
459 width: 350px;
460 display: block;
460 display: block;
461 margin: 0px 10px;
461 margin: 0px 10px;
462 padding: 0;
462 padding: 0;
463 font-family: 'Roboto Condensed', sans-serif;
463 font-family: 'Roboto Condensed', sans-serif;
464 /*overflow: hidden;*/
464 /*overflow: hidden;*/
465 border: 0px solid #f00 !important; }
465 border: 0px solid #f00 !important; }
466
466
467 .titleUes {
467 .titleUes {
468 width: 35px;
468 width: 35px;
469 text-align: right;
469 text-align: right;
470 padding-right: 5px;
470 padding-right: 5px;
471 float: left;
471 float: left;
472 line-height: 22px;
472 line-height: 22px;
473 font-family: 'Roboto Condensed', sans-serif;
473 font-family: 'Roboto Condensed', sans-serif;
474 letter-spacing: 0.086em;
474 letter-spacing: 0.086em;
475 border: 0px solid #266 !important; }
475 border: 0px solid #266 !important; }
476
476
477 .valueUes {
477 .valueUes {
478 width: 300px;
478 width: 300px;
479 float: left;
479 float: left;
480 border: 0px solid #2f4 !important;
480 border: 0px solid #2f4 !important;
481 line-height: 22px; }
481 line-height: 22px; }
482
482
483 .lblUes {
483 .lblUes {
484 font-family: 'Roboto Condensed', sans-serif;
484 font-family: 'Roboto Condensed', sans-serif;
485 color: #666;
485 color: #666;
486 font-size: 1.1em; }
486 font-size: 1.1em; }
487
487
488 .txtUnitUes {
488 .txtUnitUes {
489 width: 60px;
489 width: 60px;
490 border: 0;
490 border: 0;
491 padding: 0px 2px;
491 padding: 0px 2px;
492 text-align: center;
492 text-align: center;
493 font-family: 'Roboto Condensed', sans-serif;
493 font-family: 'Roboto Condensed', sans-serif;
494 font-size: 0.95em;
494 font-size: 0.95em;
495 border-bottom: 1px solid #666 !important; }
495 border-bottom: 1px solid #666 !important; }
496 /*
496 /*
497 .divNewUes input[type=text] {
497 .divNewUes input[type=text] {
498 width: 240px;
498 width: 240px;
499 max-width: 240px;
499 max-width: 240px;
500 line-height: 22px; }
500 line-height: 22px; }
501 */
501 */
502
503 .checkOnly, .divOnlyRx {
504 display: block;
505 line-height: 25px;
506 border: 0px solid #f00 !important; }
507
508 .divOnlyRx {
509 width: 350px;
510 margin: 5px 10px;
511 padding: 0;
512 font-family: 'Roboto Condensed', sans-serif; }
513
502 .checkOnly {
514 .checkOnly {
503 width: 120px;
515 width: 120px;
504 float: left;
516 float: left; }
505 display: block;
517
506 line-height: 25px;
518 .checkOnly input[type=checkbox], .divOnlyRx input[type=checkbox] {
507 border: 0px solid #1cc !important; }
519 width: 1em;
520 height: 1em; }
521
522 .divOnlyRx input {
523 padding: 0px;
524 float: left;
525 margin: 5px 8px; }
526
527 .divOnlyRx label {
528 line-height: 20px;
529 border: 0px solid #f00 !important; }
508
530
509 .overJRO img {
531 .overJRO img {
510 width: 400px;
532 width: 400px;
511 height: 270px;
533 height: 270px;
512 text-align: center;
534 text-align: center;
513 vertical-align: middle;
535 vertical-align: middle;
514 margin: 10px 5px 5px 5px;
536 margin: 10px 5px 5px 5px;
515 display: block;
537 display: block;
516 background: #fdfdfb;
538 background: #fdfdfb;
517 border: 1px solid #eee !important; }
539 border: 1px solid #eee !important; }
518
540
519 .overJRO a {
541 .overJRO a {
520 text-align: center;
542 text-align: center;
521 margin-left: 160px;
543 margin-left: 160px;
522 display: block; }
544 display: block; }
523
545
524 .activeOverJRO {
546 .activeOverJRO {
525 width: 60px;
547 width: 60px;
526 padding: 0px 2px;
548 padding: 0px 2px;
527 border-bottom: 1px solid #1494F6 !important; }
549 border-bottom: 1px solid #1494F6 !important; }
528
550
529 /****************************************************************************************/
551 /****************************************************************************************/
530 /****** MENU DE NAVEGACION DE PATRONES **********************************/
552 /****** MENU DE NAVEGACION DE PATRONES **********************************/
531 /****************************************************************************************/
553 /****************************************************************************************/
532 #divMnuPattern {
554 #divMnuPattern {
533 width: 280px;
555 width: 280px;
534 height: 25px;
556 height: 25px;
535 display: block;
557 display: block;
536 float: right;
558 float: right;
537 margin: 5px 40px 5px 0px;
559 margin: 5px 40px 5px 0px;
538 border: 0px solid #1cc !important; }
560 border: 0px solid #1cc !important; }
539
561
540 #divMnuPattern li {
562 #divMnuPattern li {
541 float: right;
563 float: right;
542 display: block;
564 display: block;
543 width: 60px;
565 width: 60px;
544 border: 0px solid #2cc !important; }
566 border: 0px solid #2cc !important; }
545
567
546 #divMnuPattern a {
568 #divMnuPattern a {
547 display: block;
569 display: block;
548 line-height: 22px;
570 line-height: 22px;
549 text-decoration: none;
571 text-decoration: none;
550 padding: 0px 5px;
572 padding: 0px 5px;
551 margin: 0px 2px;
573 margin: 0px 2px;
552 text-align: center;
574 text-align: center;
553 color: #1494F6;
575 color: #1494F6;
554 border-bottom: 1px solid #1494F6 !important; }
576 border-bottom: 1px solid #1494F6 !important; }
555
577
556 #infoPattern {
578 #infoPattern {
557 display: block;
579 display: block;
558 margin: 0px 25px;
580 margin: 0px 25px;
559 border: 0px solid #1494f6 !important; }
581 border: 0px solid #1494f6 !important; }
560
582
561 #navPatterns {
583 #navPatterns {
562 margin: 0 auto;
584 margin: 0 auto;
563 width: 700px;
585 width: 700px;
564 height: 30px;
586 height: 30px;
565 border: 0px solid #d00 !important;
587 border: 0px solid #d00 !important;
566 font-family: 'Ubuntu', sans-serif;
588 font-family: 'Ubuntu', sans-serif;
567 font-size: 14px;
589 font-size: 14px;
568 padding: 5px 0px; }
590 padding: 5px 0px; }
569
591
570 #navPatternList {
592 #navPatternList {
571 margin: 0 auto;
593 margin: 0 auto;
572 border: 0px solid #ecc !important; }
594 border: 0px solid #ecc !important; }
573
595
574 #navPatternList ul {
596 #navPatternList ul {
575 list-style: none;
597 list-style: none;
576 list-style-type: none;
598 list-style-type: none;
577 margin: 0; }
599 margin: 0; }
578
600
579 #navPatternList ul li {
601 #navPatternList ul li {
580 float: left;
602 float: left;
581 width: 50px;
603 width: 50px;
582 border: 1px solid #eee !important; }
604 border: 1px solid #eee !important; }
583
605
584 #navPatternList a {
606 #navPatternList a {
585 width: 50px;
607 width: 50px;
586 display: block;
608 display: block;
587 text-align: center;
609 text-align: center;
588 line-height: 30px;
610 line-height: 30px;
589 padding: 1px 0px;
611 padding: 1px 0px;
590 border: 0px solid #1cc !important; }
612 border: 0px solid #1cc !important; }
591
613
592 .lnkPattern {
614 .lnkPattern {
593 background-color: #ccc !important;
615 background-color: #ccc !important;
594 color: #eee; }
616 color: #eee; }
595
617
596 .lnkPatternSelected {
618 .lnkPatternSelected {
597 background-color: #2cc !important;
619 background-color: #2cc !important;
598 color: #fff; }
620 color: #fff; }
599
621
600 .lnkPatternActive {
622 .lnkPatternActive {
601 color: #f66;
623 color: #f66;
602 }
624 }
603
625
604 .divListofPatterns {
626 .divListofPatterns {
605 width: 650px;
627 width: 650px;
606 display: block;
628 display: block;
607 border: 1px solid #1cc !important;
629 border: 1px solid #1cc !important;
608 margin: 0 auto; }
630 margin: 0 auto; }
609
631
610 .divPattern {
632 .divPattern {
611 width: 600px;
633 width: 600px;
612 display: block;
634 display: block;
613 border: 1px solid #f00 !important;
635 border: 1px solid #f00 !important;
614 margin: 2px auto; }
636 margin: 2px auto; }
615
637
616 /****************************************************************************************/
638 /****************************************************************************************/
617 /****** HEADER *************/
639 /****** HEADER *************/
618 /****************************************************************************************/
640 /****************************************************************************************/
619 header nav {
641 header nav {
620 width: 960px;
642 width: 960px;
621 margin: 0 auto;
643 margin: 0 auto;
622 height: 100%;
644 height: 100%;
623 border: 0px solid #1cc !important; }
645 border: 0px solid #1cc !important; }
624
646
625 header nav a {
647 header nav a {
626 font-family: 'Roboto Condensed', sans-serif;
648 font-family: 'Roboto Condensed', sans-serif;
627 font-size: 1.98em;
649 font-size: 1.98em;
628 text-transform: uppercase;
650 text-transform: uppercase;
629 width: 232px;
651 width: 232px;
630 padding: 2px;
652 padding: 2px;
631 text-align: center;
653 text-align: center;
632 border: 1px solid #ddd !important;
654 border: 1px solid #ddd !important;
633 box-shadow: 1px 1px 2px #ddd;
655 box-shadow: 1px 1px 2px #ddd;
634 display: block;
656 display: block;
635 float: left;
657 float: left;
636 height: 45px;
658 height: 45px;
637 text-decoration: none;
659 text-decoration: none;
638 background: #eee;
660 background: #eee;
639 line-height: 45px;
661 line-height: 45px;
640 color: #15425d;
662 color: #15425d;
641 margin: 0px 1px; }
663 margin: 0px 1px; }
642
664
643 header nav a.selected {
665 header nav a.selected {
644 background: #666;
666 background: #666;
645 color: #fff; }
667 color: #fff; }
646
668
647 #Main_Head {
669 #Main_Head {
648 margin: 0 auto;
670 margin: 0 auto;
649 height: 100%;
671 height: 100%;
650 border: 1px solid #ddd !important;
672 border: 1px solid #ddd !important;
651 box-shadow: 1px 1px 2px #ddd;
673 box-shadow: 1px 1px 2px #ddd;
652 border-radius: 5px;
674 border-radius: 5px;
653 display: block; }
675 display: block; }
654
676
655 .Main_Title {
677 .Main_Title {
656 font-size: 2em;
678 font-size: 2em;
657 letter-spacing: 0.06em;
679 letter-spacing: 0.06em;
658 color: #444;
680 color: #444;
659 text-shadow: 2px 2px #ccc; }
681 text-shadow: 2px 2px #ccc; }
660
682
661 /****************************************************************************************/
683 /****************************************************************************************/
662 /****** FOOTER *************/
684 /****** FOOTER *************/
663 /****************************************************************************************/
685 /****************************************************************************************/
664 footer p {
686 footer p {
665 font-family: 'Roboto Condensed', sans-serif;
687 font-family: 'Roboto Condensed', sans-serif;
666 font-size: 0.98em; }
688 font-size: 0.98em; }
667
689
668 /****************************************************************************************/
690 /****************************************************************************************/
669 /****** LOGIN *************/
691 /****** LOGIN *************/
670 /****************************************************************************************/
692 /****************************************************************************************/
671 #contentLogin {
693 #contentLogin {
672 margin: 0;
694 margin: 0;
673 padding: 0;
695 padding: 0;
674 border: 0px solid #1cc; }
696 border: 0px solid #1cc; }
675
697
676 #MainColumnLogin {
698 #MainColumnLogin {
677 margin: 2px auto;
699 margin: 2px auto;
678 border: 0px solid #f00 !important;
700 border: 0px solid #f00 !important;
679 box-shadow: 1px 1px 2px #ddd;
701 box-shadow: 1px 1px 2px #ddd;
680 border-radius: 2px;
702 border-radius: 2px;
681 background-color: #eee;
703 background-color: #eee;
682 width: 100%;
704 width: 100%;
683 padding: 5px 0px;
705 padding: 5px 0px;
684 }
706 }
685
707
686 .row_reg {
708 .row_reg {
687 margin: 5px auto;
709 margin: 5px auto;
688 display: block;
710 display: block;
689 width: 90%;
711 width: 90%;
690 border: 0px solid #1cc !important;
712 border: 0px solid #1cc !important;
691 line-height: 22px;
713 line-height: 22px;
692 }
714 }
693
715
694 .row_reg label, .row_reg input[type=text] {
716 .row_reg label, .row_reg input[type=text] {
695 float: left;
717 float: left;
696 line-height: 22px;
718 line-height: 22px;
697 }
719 }
698
720
699 #id_username, #id_password {
721 #id_username, #id_password {
700 width: 160px;
722 width: 160px;
701 line-height: 22px;
723 line-height: 22px;
702 }
724 }
703
725
704 .row_reg label {
726 .row_reg label {
705 width: 400px;
727 width: 400px;
706 text-align: right;
728 text-align: right;
707 padding-right: 10px;
729 padding-right: 10px;
708 border: 0px solid #d22 !important;
730 border: 0px solid #d22 !important;
709 }
731 }
710
732
711 .row_reg input[type=submit], .row_reg input[type=button] {
733 .row_reg input[type=submit], .row_reg input[type=button] {
712 margin-left: 410px;
734 margin-left: 410px;
713 width: 80px;
735 width: 80px;
714 }
736 }
715
737
716 #lblTitleLogin {
738 #lblTitleLogin {
717 width: 100%;
739 width: 100%;
718 text-align: center;
740 text-align: center;
719 font-size: 1.2em;
741 font-size: 1.2em;
720 font-weight: normal;
742 font-weight: normal;
721 color: #222;
743 color: #222;
722 border: 0px solid #f00 !important;
744 border: 0px solid #f00 !important;
723 background-color: #ccc;
745 background-color: #ccc;
724 } No newline at end of file
746 }
@@ -1,254 +1,264
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>
7 <li><a href="#" id="lnkCancel">Delete</a></li>
8 <li><a href="#" id="lnkSavePattern">Save</a></li>
8 <li><a href="#" id="lnkSavePattern">Save</a></li>
9 {% if lsPatterns|length < 10 %}
9 {% if lsPatterns|length < 10 %}
10 <li><a href="#" id="lnkAdd">Add</a></li>
10 <li><a href="#" id="lnkAdd">Add</a></li>
11 {% endif %}
11 {% endif %}
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="divPattern">
18 <div id="divPattern">
19 <form action="{% url abscontrol.views.savePattern objProfile.id %}" id="frmPattern" method="post">
19 <form action="{% url abscontrol.views.savePattern objProfile.id %}" id="frmPattern" method="post">
20 {% csrf_token %}
20 {% csrf_token %}
21 <div id="antennaUp" class="NewAntenna">
21 <div id="antennaUp" class="NewAntenna">
22 <fieldset class="NewFlsAntenna">
22 <fieldset class="NewFlsAntenna">
23 <legend class="legendAntenna">UP</legend>
23 <legend class="legendAntenna">UP</legend>
24 <div class="NewDivAntenna">
24 <div class="NewDivAntenna">
25 <label for="lblAntenna" class="titleField">Antenna</label>
25 <label for="lblAntenna" class="titleField">Antenna</label>
26 <div class="boxAntenna" id="divtxtAntenna">
26 <div class="boxAntenna" id="divtxtAntenna">
27 {% for lines in arrayAntennaUp %}
27 {% for lines in arrayAntennaUp %}
28 <div class="fullLine">
28 <div class="fullLine">
29 {% if forloop.first %}
29 {% if forloop.first %}
30 <label for="lblSignLeft" class="lblSignLeft">[</label>
30 <label for="lblSignLeft" class="lblSignLeft">[</label>
31 {% else %}
31 {% else %}
32 <label for="lblSignLeft" class="lblSignLeft">&nbsp;</label>
32 <label for="lblSignLeft" class="lblSignLeft">&nbsp;</label>
33 {% endif %}
33 {% endif %}
34 <div class="lineInputs">
34 <div class="lineInputs">
35 <label for="lblSign" class="lblSign">[</label>
35 <label for="lblSign" class="lblSign">[</label>
36 <div class="divValuesAntenna">
36 <div class="divValuesAntenna">
37 {% for line in lines %}
37 {% for line in lines %}
38 <input type="text" name="txtUnitAntennaUp" class="txtUnitAntenna" id="txtUnitAntennaUp_{{ forloop.parentloop.counter0 }}_{{ forloop.counter0 }}" value="{{line}}" maxlength="3" />
38 <input type="text" name="txtUnitAntennaUp" class="txtUnitAntenna" id="txtUnitAntennaUp_{{ forloop.parentloop.counter0 }}_{{ forloop.counter0 }}" value="{{line}}" maxlength="3" />
39 {% if not forloop.last %},{% endif %}
39 {% if not forloop.last %},{% endif %}
40 {% endfor %}
40 {% endfor %}
41 </div>
41 </div>
42 <label for="lblSign" class="lblSign">]</label>
42 <label for="lblSign" class="lblSign">]</label>
43 </div>
43 </div>
44 {% if forloop.last %}
44 {% if forloop.last %}
45 <label for="lblSignRight" class="lblSignRight">]</label>
45 <label for="lblSignRight" class="lblSignRight">]</label>
46 {% else %}
46 {% else %}
47 <label for="lblSignRight" class="lblSignRight">,</label>
47 <label for="lblSignRight" class="lblSignRight">,</label>
48 {% endif %}
48 {% endif %}
49 </div>
49 </div>
50 <div class="cleardivs"></div>
50 <div class="cleardivs"></div>
51 {% endfor %}
51 {% endfor %}
52 </div>
52 </div>
53 </div>
53 </div>
54 <div class="NewDivTx">
54 <div class="NewDivTx">
55 <label for="lblTx" class="titleField">Tx</label>
55 <label for="lblTx" class="titleField">Tx</label>
56 <div class="boxTR" id="divtxtTR">
56 <div class="boxTR" id="divtxtTR">
57 {% for lines in arrayTxUp %}
57 {% for lines in arrayTxUp %}
58 <div class="fullLine">
58 <div class="fullLine">
59 {% if forloop.first %}
59 {% if forloop.first %}
60 <label for="lblNewSignLeft" class="lblNewSignLeft">[</label>
60 <label for="lblNewSignLeft" class="lblNewSignLeft">[</label>
61 {% else %}
61 {% else %}
62 <label for="lblNewSignLeft" class="lblNewSignLeft">&nbsp;</label>
62 <label for="lblNewSignLeft" class="lblNewSignLeft">&nbsp;</label>
63 {% endif %}
63 {% endif %}
64 <div class="lineInputsTx">
64 <div class="lineInputsTx">
65 <label for="lblSign" class="lblSignTx">[</label>
65 <label for="lblSign" class="lblSignTx">[</label>
66 <div class="divValuesTx">
66 <div class="divValuesTx">
67 {% for line in lines %}
67 {% for line in lines %}
68 <input type="text" name="txtUnitTxUp" class="txtUnitTx" id="txtUnitTxUp_{{ forloop.parentloop.counter0 }}_{{ forloop.counter0 }}" value="{{ line }}" maxlength="1" />
68 <input type="text" name="txtUnitTxUp" class="txtUnitTx" id="txtUnitTxUp_{{ forloop.parentloop.counter0 }}_{{ forloop.counter0 }}" value="{{ line }}" maxlength="1" />
69 {% if not forloop.last %},{% endif %}
69 {% if not forloop.last %},{% endif %}
70 {% endfor %}
70 {% endfor %}
71 </div>
71 </div>
72 <label for="lblSign" class="lblSignTx">]</label>
72 <label for="lblSign" class="lblSignTx">]</label>
73 </div>
73 </div>
74 {% if forloop.last %}
74 {% if forloop.last %}
75 <label for="lblNewSignRight" class="lblNewSignRight">]</label>
75 <label for="lblNewSignRight" class="lblNewSignRight">]</label>
76 {% else %}
76 {% else %}
77 <label for="lblNewSignRight" class="lblNewSignRight">,</label>
77 <label for="lblNewSignRight" class="lblNewSignRight">,</label>
78 {% endif %}
78 {% endif %}
79 </div>
79 </div>
80 <div class="cleardivs"></div>
80 <div class="cleardivs"></div>
81 {% endfor %}
81 {% endfor %}
82 </div>
82 </div>
83 <div class="cleardivs"></div>
83 <div class="cleardivs"></div>
84 </div>
84 </div>
85 <div class="NewDivTx">
85 <div class="NewDivTx">
86 <label for="lblRx" class="titleField">Rx</label>
86 <label for="lblRx" class="titleField">Rx</label>
87 <div class="boxTR" id="divtxtTR">
87 <div class="boxTR" id="divtxtTR">
88 {% for lines in arrayRxUp %}
88 {% for lines in arrayRxUp %}
89 <div class="fullLine">
89 <div class="fullLine">
90 {% if forloop.first %}
90 {% if forloop.first %}
91 <label for="lblNewSignLeft" class="lblNewSignLeft">[</label>
91 <label for="lblNewSignLeft" class="lblNewSignLeft">[</label>
92 {% else %}
92 {% else %}
93 <label for="lblNewSignLeft" class="lblNewSignLeft">&nbsp;</label>
93 <label for="lblNewSignLeft" class="lblNewSignLeft">&nbsp;</label>
94 {% endif %}
94 {% endif %}
95 <div class="lineInputsTx">
95 <div class="lineInputsTx">
96 <label for="lblSign" class="lblSignTx">[</label>
96 <label for="lblSign" class="lblSignTx">[</label>
97 <div class="divValuesTx">
97 <div class="divValuesTx">
98 {% for line in lines %}
98 {% for line in lines %}
99 <input type="text" name="txtUnitRxUp" class="txtUnitRx" id="txtUnitRxUp_{{ forloop.parentloop.counter0 }}_{{ forloop.counter0 }}" value="{{ line }}" maxlength="1" />
99 <input type="text" name="txtUnitRxUp" class="txtUnitRx" id="txtUnitRxUp_{{ forloop.parentloop.counter0 }}_{{ forloop.counter0 }}" value="{{ line }}" maxlength="1" />
100 {% if not forloop.last %},{% endif %}
100 {% if not forloop.last %},{% endif %}
101 {% endfor %}
101 {% endfor %}
102 </div>
102 </div>
103 <label for="lblSign" class="lblSignTx">]</label>
103 <label for="lblSign" class="lblSignTx">]</label>
104 </div>
104 </div>
105 {% if forloop.last %}
105 {% if forloop.last %}
106 <label for="lblNewSignRight" class="lblNewSignRight">]</label>
106 <label for="lblNewSignRight" class="lblNewSignRight">]</label>
107 {% else %}
107 {% else %}
108 <label for="lblNewSignRight" class="lblNewSignRight">,</label>
108 <label for="lblNewSignRight" class="lblNewSignRight">,</label>
109 {% endif %}
109 {% endif %}
110 </div>
110 </div>
111 <div class="cleardivs"></div>
111 <div class="cleardivs"></div>
112 {% endfor %}
112 {% endfor %}
113 </div>
113 </div>
114 <div class="cleardivs"></div>
114 <div class="cleardivs"></div>
115 </div>
115 </div>
116 <div class="cleardivs"></div>
116 <div class="cleardivs"></div>
117 <div class="divNewUes">
117 <div class="divNewUes">
118 <label for="lblUes" class="titleUes">Ues:</label>
118 <label for="lblUes" class="titleUes">Ues:</label>
119 <div class="valueUes">
119 <div class="valueUes">
120 <label for="lblUes">[</label>
120 <label for="lblUes">[</label>
121 {% for element in arrayUesUp %}
121 {% for element in arrayUesUp %}
122 <input type="text" name="unitUesUp_{{ forloop.counter }}" value="{{ element }}" maxlength="8" class="txtUnitUes" />
122 <input type="text" name="unitUesUp_{{ forloop.counter }}" value="{{ element }}" maxlength="8" class="txtUnitUes" />
123 {% if not forloop.last %},{% endif %}
123 {% if not forloop.last %},{% endif %}
124 {% endfor %}
124 {% endfor %}
125 <label for="lblUes">]</label>
125 <label for="lblUes">]</label>
126 </div>
126 </div>
127 </div>
127 </div>
128 <div class="cleardivs"></div>
129 <div class="divOnlyRx">
130 <input type="checkbox" name="chkOnlyRxUp" value="1" {% if antennaUp.only_rx == 1 %}checked{% endif %} />
131 <label for="lblOnlyRx" class="titleOnlyRx">Only Rx</label>
132 </div>
128 <input type="hidden" name="txtAntennaUpId" value="{{ antennaUp.id }}" />
133 <input type="hidden" name="txtAntennaUpId" value="{{ antennaUp.id }}" />
129 </fieldset>
134 </fieldset>
130 <input type="hidden" name="txtAntennaUp" value="" />
135 <input type="hidden" name="txtAntennaUp" value="" />
131 <input type="hidden" name="txtTxUp" value="" />
136 <input type="hidden" name="txtTxUp" value="" />
132 <input type="hidden" name="txtRxUp" value="" />
137 <input type="hidden" name="txtRxUp" value="" />
133 <input type="hidden" name="txtUesUp" value="" />
138 <input type="hidden" name="txtUesUp" value="" />
134 </div>
139 </div>
135 <div id="antennaDown" class="NewAntenna">
140 <div id="antennaDown" class="NewAntenna">
136 <fieldset class="NewFlsAntenna">
141 <fieldset class="NewFlsAntenna">
137 <legend class="legendAntenna">DOWN</legend>
142 <legend class="legendAntenna">DOWN</legend>
138 <div class="NewDivAntenna">
143 <div class="NewDivAntenna">
139 <label for="lblAntenna" class="titleField">Antenna</label>
144 <label for="lblAntenna" class="titleField">Antenna</label>
140 <div class="boxAntenna" id="divtxtAntenna">
145 <div class="boxAntenna" id="divtxtAntenna">
141 {% for lines in arrayAntennaDown %}
146 {% for lines in arrayAntennaDown %}
142 <div class="fullLine">
147 <div class="fullLine">
143 {% if forloop.first %}
148 {% if forloop.first %}
144 <label for="lblSignLeft" class="lblSignLeft">[</label>
149 <label for="lblSignLeft" class="lblSignLeft">[</label>
145 {% else %}
150 {% else %}
146 <label for="lblSignLeft" class="lblSignLeft">&nbsp;</label>
151 <label for="lblSignLeft" class="lblSignLeft">&nbsp;</label>
147 {% endif %}
152 {% endif %}
148 <div class="lineInputs">
153 <div class="lineInputs">
149 <label for="lblSign" class="lblSign">[</label>
154 <label for="lblSign" class="lblSign">[</label>
150 <div class="divValuesAntenna">
155 <div class="divValuesAntenna">
151 {% for line in lines %}
156 {% for line in lines %}
152 <input type="text" name="txtUnitAntennaDown" class="txtUnitAntenna" id="txtUnitAntennaDown_{{ forloop.parentloop.counter0 }}_{{ forloop.counter0 }}" value="{{ line }}" maxlength="3" />
157 <input type="text" name="txtUnitAntennaDown" class="txtUnitAntenna" id="txtUnitAntennaDown_{{ forloop.parentloop.counter0 }}_{{ forloop.counter0 }}" value="{{ line }}" maxlength="3" />
153 {% if not forloop.last %},{% endif %}
158 {% if not forloop.last %},{% endif %}
154 {% endfor %}
159 {% endfor %}
155 </div>
160 </div>
156 <label for="lblSign" class="lblSign">]</label>
161 <label for="lblSign" class="lblSign">]</label>
157 </div>
162 </div>
158 {% if forloop.last %}
163 {% if forloop.last %}
159 <label for="lblSignRight" class="lblSignRight">]</label>
164 <label for="lblSignRight" class="lblSignRight">]</label>
160 {% else %}
165 {% else %}
161 <label for="lblSignRight" class="lblSignRight">,</label>
166 <label for="lblSignRight" class="lblSignRight">,</label>
162 {% endif %}
167 {% endif %}
163 </div>
168 </div>
164 <div class="cleardivs"></div>
169 <div class="cleardivs"></div>
165 {% endfor %}
170 {% endfor %}
166 </div>
171 </div>
167 </div>
172 </div>
168 <div class="NewDivTx">
173 <div class="NewDivTx">
169 <label for="lblTx" class="titleField">Tx</label>
174 <label for="lblTx" class="titleField">Tx</label>
170 <div class="boxTR" id="divtxtTR">
175 <div class="boxTR" id="divtxtTR">
171 {% for lines in arrayTxDown %}
176 {% for lines in arrayTxDown %}
172 <div class="fullLine">
177 <div class="fullLine">
173 {% if forloop.first %}
178 {% if forloop.first %}
174 <label for="lblNewSignLeft" class="lblNewSignLeft">[</label>
179 <label for="lblNewSignLeft" class="lblNewSignLeft">[</label>
175 {% else %}
180 {% else %}
176 <label for="lblNewSignLeft" class="lblNewSignLeft">&nbsp;</label>
181 <label for="lblNewSignLeft" class="lblNewSignLeft">&nbsp;</label>
177 {% endif %}
182 {% endif %}
178 <div class="lineInputsTx">
183 <div class="lineInputsTx">
179 <label for="lblSign" class="lblSignTx">[</label>
184 <label for="lblSign" class="lblSignTx">[</label>
180 <div class="divValuesTx">
185 <div class="divValuesTx">
181 {% for line in lines %}
186 {% for line in lines %}
182 <input type="text" name="txtUnitTxDown" class="txtUnitTx" id="txtUnitTxDown_{{ forloop.parentloop.counter0 }}_{{ forloop.counter0 }}" value="{{ line }}" maxlength="1" />
187 <input type="text" name="txtUnitTxDown" class="txtUnitTx" id="txtUnitTxDown_{{ forloop.parentloop.counter0 }}_{{ forloop.counter0 }}" value="{{ line }}" maxlength="1" />
183 {% if not forloop.last %},{% endif %}
188 {% if not forloop.last %},{% endif %}
184 {% endfor %}
189 {% endfor %}
185 </div>
190 </div>
186 <label for="lblSign" class="lblSignTx">]</label>
191 <label for="lblSign" class="lblSignTx">]</label>
187 </div>
192 </div>
188 {% if forloop.last %}
193 {% if forloop.last %}
189 <label for="lblNewSignRight" class="lblNewSignRight">]</label>
194 <label for="lblNewSignRight" class="lblNewSignRight">]</label>
190 {% else %}
195 {% else %}
191 <label for="lblNewSignRight" class="lblNewSignRight">,</label>
196 <label for="lblNewSignRight" class="lblNewSignRight">,</label>
192 {% endif %}
197 {% endif %}
193 </div>
198 </div>
194 <div class="cleardivs"></div>
199 <div class="cleardivs"></div>
195 {% endfor %}
200 {% endfor %}
196 </div>
201 </div>
197 <div class="cleardivs"></div>
202 <div class="cleardivs"></div>
198 </div>
203 </div>
199 <div class="NewDivTx">
204 <div class="NewDivTx">
200 <label for="lblRx" class="titleField">Rx</label>
205 <label for="lblRx" class="titleField">Rx</label>
201 <div class="boxTR" id="divtxtTR">
206 <div class="boxTR" id="divtxtTR">
202 {% for lines in arrayRxDown %}
207 {% for lines in arrayRxDown %}
203 <div class="fullLine">
208 <div class="fullLine">
204 {% if forloop.first %}
209 {% if forloop.first %}
205 <label for="lblNewSignLeft" class="lblNewSignLeft">[</label>
210 <label for="lblNewSignLeft" class="lblNewSignLeft">[</label>
206 {% else %}
211 {% else %}
207 <label for="lblNewSignLeft" class="lblNewSignLeft">&nbsp;</label>
212 <label for="lblNewSignLeft" class="lblNewSignLeft">&nbsp;</label>
208 {% endif %}
213 {% endif %}
209 <div class="lineInputsTx">
214 <div class="lineInputsTx">
210 <label for="lblSign" class="lblSignTx">[</label>
215 <label for="lblSign" class="lblSignTx">[</label>
211 <div class="divValuesTx">
216 <div class="divValuesTx">
212 {% for line in lines %}
217 {% for line in lines %}
213 <input type="text" name="txtUnitRxDown" class="txtUnitRx" id="txtUnitRxDown_{{ forloop.parentloop.counter0 }}_{{ forloop.counter0 }}" value="{{ line }}" />
218 <input type="text" name="txtUnitRxDown" class="txtUnitRx" id="txtUnitRxDown_{{ forloop.parentloop.counter0 }}_{{ forloop.counter0 }}" value="{{ line }}" />
214 {% if not forloop.last %},{% endif %}
219 {% if not forloop.last %},{% endif %}
215 {% endfor %}
220 {% endfor %}
216 </div>
221 </div>
217 <label for="lblSign" class="lblSignTx">]</label>
222 <label for="lblSign" class="lblSignTx">]</label>
218 </div>
223 </div>
219 {% if forloop.last %}
224 {% if forloop.last %}
220 <label for="lblNewSignRight" class="lblNewSignRight">]</label>
225 <label for="lblNewSignRight" class="lblNewSignRight">]</label>
221 {% else %}
226 {% else %}
222 <label for="lblNewSignRight" class="lblNewSignRight">,</label>
227 <label for="lblNewSignRight" class="lblNewSignRight">,</label>
223 {% endif %}
228 {% endif %}
224 </div>
229 </div>
225 <div class="cleardivs"></div>
230 <div class="cleardivs"></div>
226 {% endfor %}
231 {% endfor %}
227 </div>
232 </div>
228 <div class="cleardivs"></div>
233 <div class="cleardivs"></div>
229 </div>
234 </div>
230 <div class="cleardivs"></div>
235 <div class="cleardivs"></div>
231 <div class="divNewUes">
236 <div class="divNewUes">
232 <label for="lblUes" class="titleUes">Ues:</label>
237 <label for="lblUes" class="titleUes">Ues:</label>
233 <div class="valueUes">
238 <div class="valueUes">
234 <label for="lblUes">[</label>
239 <label for="lblUes">[</label>
235 {% for element in arrayUesDown %}
240 {% for element in arrayUesDown %}
236 <input type="text" name="unitUesDown_{{ forloop.counter }}" value="{{ element }}" maxlength="8" class="txtUnitUes" />
241 <input type="text" name="unitUesDown_{{ forloop.counter }}" value="{{ element }}" maxlength="8" class="txtUnitUes" />
237 {% if not forloop.last %},{% endif %}
242 {% if not forloop.last %},{% endif %}
238 {% endfor %}
243 {% endfor %}
239 <label for="lblUes">]</label>
244 <label for="lblUes">]</label>
240 </div>
245 </div>
241 </div>
246 </div>
247 <div class="cleardivs"></div>
248 <div class="divOnlyRx">
249 <input type="checkbox" name="chkOnlyRxDown" value="1" {% if antennaDown.only_rx == 1 %}checked{% endif %} />
250 <label for="lblOnlyRx" class="titleOnlyRx">Only Rx</label>
251 </div>
242 <input type="hidden" name="txtAntennaDownId" value="{{ antennaDown.id }}" />
252 <input type="hidden" name="txtAntennaDownId" value="{{ antennaDown.id }}" />
243 </fieldset>
253 </fieldset>
244 <input type="hidden" name="txtAntennaDown" value="" />
254 <input type="hidden" name="txtAntennaDown" value="" />
245 <input type="hidden" name="txtTxDown" value="" />
255 <input type="hidden" name="txtTxDown" value="" />
246 <input type="hidden" name="txtRxDown" value="" />
256 <input type="hidden" name="txtRxDown" value="" />
247 <input type="hidden" name="txtUesDown" value="" />
257 <input type="hidden" name="txtUesDown" value="" />
248 </div>
258 </div>
249 <input type="hidden" name="pattern_id" id="pattern_id" value="{{ patternChoosen.id }}" />
259 <input type="hidden" name="pattern_id" id="pattern_id" value="{{ patternChoosen.id }}" />
250 <input type="hidden" name="profile_id" id="profile_id" value="{{ objProfile.id }}" />
260 <input type="hidden" name="profile_id" id="profile_id" value="{{ objProfile.id }}" />
251 <input type="hidden" name="mode" value="e">
261 <input type="hidden" name="mode" value="e">
252 </form>
262 </form>
253 </div>
263 </div>
254 {% endblock %} No newline at end of file
264 {% endblock %}
General Comments 0
You need to be logged in to leave comments. Login now