##// END OF EJS Templates
- Almacenados los datos del archivo ABS despues de ser importado.
jsalyrosas -
r155:156
parent child
Show More
@@ -0,0 +1,56
1 {% extends "abscontrol/index.html" %}
2 {% block title %}ABS CONTROL:::::IMPORT PROFILE{% endblock %}
3 {% block scripting %}
4 <script src="/static/static/js/profiles.js"></script>
5 {% endblock %}
6 {% block mnu_profile %}
7 <nav class="MnuVertical" id="mnuProfiles">
8 <ul>
9 <li><a href="/abscontrol/new">New</a></li>
10 <li><a href="#" id="lnkSaveImport">Save</a></li>
11 <li><a href="/abscontrol/import">Import</a></li>
12 <li><a href="#">Export</a></li>
13 <li><a href="#">Apply</a></li>
14 </ul>
15 </nav>
16 {% endblock %}
17 {% block maincolumn %}
18 <div id="maincolumn">
19 <div id="divPattern">
20 <div class="divUes">
21 <label for="lblFile">File: {{ txtFilename }}</label>
22 </div>
23 <form action="/abscontrol/saveImport/" id="frmImportProfile" method="post">
24 <div class="divUes">
25 <label for="lblExperiment">Experiment: </label>
26 <input type="text" name="txtProfile" value="{{ expName }}">
27 <br />
28 <label for="lblNumber">Number of patterns: {{ num_patterns }}</label>
29 <input type="hidden" name="txtNumPatterns" value="{{ num_patterns }}" />
30 </div>
31 {% if patterns %}
32 <div class="divListofPatterns">
33 {% for element in patterns %}
34 <div class="divPattern">
35 <div>
36 <label for="lblNumber">Pattern: {{ element.number }}</label>
37 <input type="hidden" name="txtNumberPattern{{ element.number }}" value="{{ element.number }}" />
38 </div>
39 <div class="divAntenna">
40 <label for="lblAntennaUp">Antenna Up:</label>
41 <textarea name="txtAntennaUp{{ element.number }}" class="txtAntenna" cols="38" rows="8">{{ element.up }}</textarea>
42 </div>
43 <div class="divAntenna">
44 <label for="lblAntennaDown">Antenna Down:</label>
45 <textarea name="txtAntennaDown{{ element.number }}" class="txtAntenna" cols="38" rows="8">{{ element.down }}</textarea>
46 </div>
47 <div class="cleardivs"></div>
48 </div>
49 <div class="cleardivs"></div>
50 {% endfor %}
51 </div>
52 {% endif %}
53 </form>
54 </div>
55 </div>
56 {% endblock %}
@@ -0,0 +1,45
1 {% extends "abscontrol/index.html" %}
2 {% block title %}ABS CONTROL:::::IMPORT PROFILE{% endblock %}
3
4 {% block mnu_profile %}
5 <nav class="MnuVertical" id="mnuProfiles">
6 <ul>
7 <li><a href="/abscontrol/new">New</a></li>
8 <li><a href="#">Save</a></li>
9 <li><a href="/abscontrol/import">Import</a></li>
10 <li><a href="#">Export</a></li>
11 <li><a href="#">Apply</a></li>
12 </ul>
13 </nav>
14 {% endblock %}
15 {% block maincolumn %}
16 <div id="maincolumn">
17 <div id="divPattern">
18 <div class="divUes">
19 <label for="lblExperiment">Experiment: {{ expName }}</label><br />
20 <label for="lblNumber">Number of patterns: {{ num_patterns }}</label>
21 </div>
22 {% if patterns %}
23 <div class="divListofPatterns">
24 {% for element in patterns %}
25 <div class="divPattern">
26 <div>
27 <label for="lblNumber">Pattern: {{ element.number }}</label>
28 </div>
29 <div class="divAntenna">
30 <label for="lblAntennaUp">Antenna Up:</label>
31 <p>{{ element.up }}</p>
32 </div>
33 <div class="divAntenna">
34 <label for="lblAntennaDown">Antenna Down:</label>
35 <p>{{ element.down }}</p>
36 </div>
37 <div class="cleardivs"></div>
38 </div>
39 <div class="cleardivs"></div>
40 {% endfor %}
41 </div>
42 {% endif %}
43 </div>
44 </div>
45 {% endblock %}
@@ -1,20 +1,21
1 1 from django.conf.urls import patterns, url
2 2
3 3 urlpatterns = patterns('abscontrol.views',
4 4 url(r'^$', 'index'),
5 5 url(r'^new/$', 'new'),
6 6 url(r'^save/$', 'save'),
7 7 url(r'^view/(?P<profile_id>\d+)/$', 'view'),
8 8 url(r'^edit/(?P<profile_id>\d+)/$', 'edit'),
9 9 #url(r'^(?P<profile_id>\d+)/$', 'detail'),
10 10 url(r'^(?P<profile_id>\d+)/add/$', 'addPattern'),
11 11 url(r'^(?P<profile_id>\d+)/save/$', 'savePattern'),
12 12 url(r'^(?P<profile_id>\d+)/edit/(?P<pattern_id>\d+)/$', 'editPattern'),
13 13 url(r'^(?P<profile_id>\d+)/view/(?P<pattern_id>\d+)/$', 'viewPattern'),
14 14 url(r'^(?P<profile_id>\d+)/delete/(?P<pattern_id>\d+)/$', 'deletePattern'),
15 15 #url(r'^(?P<poll_id>\d+)/results/$', 'results'),
16 16 #url(r'^(?P<poll_id>\d+)/vote/$', 'vote'),
17 17 url(r'^import/$', 'importProfile'),
18 url(r'^showImport/$', 'showImport'),
18 19 url(r'^saveImport/$', 'saveImport'),
19 20 url(r'^(?P<profile_id>\d+)/(?P<pattern_id>\d+)/overjro/(?P<antenna_id>\d+)/$', 'overJRO'),
20 21 ) No newline at end of file
@@ -1,281 +1,307
1 1 from django.shortcuts import render_to_response, redirect
2 2 from abscontrol.models import Profile, Pattern, AntennaDown, AntennaUp
3 3 from util.readABSFile import readABSFile
4 4
5 5 txtAntenna = "[[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]," \
6 6 "[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]," \
7 7 "[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]," \
8 8 "[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]," \
9 9 "[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]," \
10 10 "[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]," \
11 11 "[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]," \
12 12 "[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]]"
13 13
14 14 txtTxUp = "[[1,1,1,1,1,1,1,1]," \
15 15 "[1,1,1,1,1,1,1,1]," \
16 16 "[1,1,1,1,1,1,1,1]," \
17 17 "[1,1,1,1,1,1,1,1]," \
18 18 "[1,1,1,1,1,1,1,1]," \
19 19 "[1,1,1,1,1,1,1,1]," \
20 20 "[1,1,1,1,1,1,1,1]," \
21 21 "[1,1,1,1,1,1,1,1]]"
22 22
23 23 txtTxDown = "[[1,1,1,1,0,0,0,0]," \
24 24 "[1,1,1,1,0,0,0,0]," \
25 25 "[1,1,1,1,0,0,0,0]," \
26 26 "[1,1,1,1,0,0,0,0]," \
27 27 "[0,0,0,0,1,1,1,1]," \
28 28 "[0,0,0,0,1,1,1,1]," \
29 29 "[0,0,0,0,1,1,1,1]," \
30 30 "[0,0,0,0,1,1,1,1]]"
31 31
32 32 txtRxUp = "[[0,0,0,0,1,1,1,1]," \
33 33 "[0,0,0,0,1,1,1,1]," \
34 34 "[0,0,0,0,1,1,1,1]," \
35 35 "[0,0,0,0,1,1,1,1]," \
36 36 "[1,1,1,1,1,1,1,1]," \
37 37 "[1,1,1,1,1,1,1,1]," \
38 38 "[1,1,1,1,1,1,1,1]," \
39 39 "[1,1,1,1,1,1,1,1]]"
40 40
41 41 txtRxDown = "[[1,1,1,1,1,1,1,1]," \
42 42 "[1,1,1,1,1,1,1,1]," \
43 43 "[1,1,1,1,1,1,1,1]," \
44 44 "[1,1,1,1,1,1,1,1]," \
45 45 "[1,1,1,1,1,1,1,1]," \
46 46 "[1,1,1,1,1,1,1,1]," \
47 47 "[1,1,1,1,1,1,1,1]," \
48 48 "[1,1,1,1,1,1,1,1]]"
49 49
50 50 txtUes = "[0.533333,0.00000,1.06667,0.00000]"
51 51
52 52 def index(request):
53 53 #latest_poll_list = profileAntenna.objects.all().order_by('-pub_date')[:5]
54 54 profile_list = Profile.objects.all()
55 55 return render_to_response('abscontrol/index.html', {'profile_list': profile_list})
56 56
57 57 def new(request):
58 58 profile_list = Profile.objects.all()
59 59
60 60 return render_to_response('abscontrol/new.html', {'profile_list': profile_list,
61 61 'txtAntenna' : txtAntenna,
62 62 'txtUes' : txtUes, 'txtTxUp' : txtTxUp,
63 63 'txtTxDown' : txtTxDown, 'txtRxUp' : txtRxUp,
64 64 'txtRxDown' : txtRxDown,
65 65 })
66 66
67 67 def save(request):
68 68
69 69 txtProfile = request.POST["txtProfile"]
70 70
71 71 txtAntennaUp = request.POST["txtAntennaUp"]
72 72 txtTxUp = request.POST["txtTxUp"]
73 73 txtRxUp = request.POST["txtRxUp"]
74 74 txtUesUp = request.POST["txtUesUp"]
75 75
76 76 txtAntennaDown = request.POST["txtAntennaDown"]
77 77 txtTxDown = request.POST["txtTxDown"]
78 78 txtRxDown = request.POST["txtRxDown"]
79 79 txtUesDown = request.POST["txtUesDown"]
80 80
81 81 newprofile = Profile(name=txtProfile)
82 82 newprofile.save()
83 83
84 84 newpattern = newprofile.pattern_set.create(value=1)
85 85 newpattern.antennaup_set.create(value=txtAntennaUp,tx=txtTxUp,rx=txtRxUp,ues=txtUesUp)
86 86 newpattern.antennadown_set.create(value=txtAntennaDown,tx=txtTxDown,rx=txtRxDown,ues=txtUesDown)
87 87
88 88 newurl = '/abscontrol/view/%d' % newprofile.id
89 89
90 90 return redirect(newurl)
91 91
92 92 def view(request, profile_id):
93 93 nextPattern = 0
94 94
95 95 if request.method == 'GET' and 'pattern' in request.GET:
96 96 pattern_value = request.GET["pattern"]
97 97 else:
98 98 pattern_value = 1
99 99
100 100 profile_list = Profile.objects.all()
101 101 objProfile = Profile.objects.get(pk=profile_id)
102 102
103 103 lsPatterns = objProfile.pattern_set.all()
104 104 patternChoosen = objProfile.pattern_set.get(value=pattern_value)
105 105 objAntennaUp = patternChoosen.antennaup_set.get()
106 106 objAntennaDown = patternChoosen.antennadown_set.get()
107 107
108 108 if len(lsPatterns) > 1:
109 109 if pattern_value == 1:
110 110 nextValuePattern = pattern_value + 1
111 111 nextPattern = objProfile.pattern_set.get(value=nextValuePattern)
112 112
113 113
114 114 return render_to_response('abscontrol/view.html', {'objProfile': objProfile, 'profile_list': profile_list,
115 115 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
116 116 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
117 117 'nextPattern' : nextPattern,
118 118 })
119 119
120 120 def edit(request, profile_id):
121 121 if request.method == 'GET' and 'pattern' in request.GET:
122 122 pattern_value = request.GET["pattern"]
123 123 else:
124 124 pattern_value = 1
125 125
126 126 profile_list = Profile.objects.all()
127 127 objProfile = Profile.objects.get(pk=profile_id)
128 128
129 129 lsPatterns = objProfile.pattern_set.all()
130 130 patternChoosen = objProfile.pattern_set.get(value=pattern_value)
131 131 objAntennaUp = patternChoosen.antennaup_set.get()
132 132 objAntennaDown = patternChoosen.antennadown_set.get()
133 133
134 134 return render_to_response('abscontrol/edit.html', {'objProfile': objProfile, 'profile_list': profile_list,
135 135 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
136 136 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
137 137 })
138 138
139 139 def addPattern(request, profile_id):
140 140 profile_list = Profile.objects.all()
141 141 objProfile = Profile.objects.get(pk=profile_id)
142 142
143 143 return render_to_response('abscontrol/addPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
144 144 'txtAntenna' : txtAntenna, 'txtUes' : txtUes,
145 145 'txtTxUp' : txtTxUp, 'txtTxDown' : txtTxDown,
146 146 'txtRxUp' : txtRxUp, 'txtRxDown' : txtRxDown,
147 147 })
148 148
149 149 def editPattern(request, profile_id, pattern_id):
150 150 profile_list = Profile.objects.all()
151 151 objProfile = Profile.objects.get(pk=profile_id)
152 152 lsPatterns = objProfile.pattern_set.all()
153 153 patternChoosen = Pattern.objects.get(pk=pattern_id)
154 154 objAntennaUp = patternChoosen.antennaup_set.get()
155 155 objAntennaDown = patternChoosen.antennadown_set.get()
156 156
157 157 return render_to_response('abscontrol/editPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
158 158 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
159 159 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
160 160 })
161 161
162 162 def savePattern(request, profile_id):
163 163 pattern_id = 0
164 164 method = "save"
165 165
166 166 if 'pattern_id' in request.POST:
167 167 pattern_id = request.POST["pattern_id"]
168 168 method = "update"
169 169
170 170 maxValuePattern = 0
171 171 txtAntennaUp = request.POST["txtAntennaUp"]
172 172 txtTxUp = request.POST["txtTxUp"]
173 173 txtRxUp = request.POST["txtRxUp"]
174 174 txtUesUp = request.POST["txtUesUp"]
175 175
176 176 txtAntennaDown = request.POST["txtAntennaDown"]
177 177 txtTxDown = request.POST["txtTxDown"]
178 178 txtRxDown = request.POST["txtRxDown"]
179 179 txtUesDown = request.POST["txtUesDown"]
180 180
181 181 if method == "save":
182 182 objProfile = Profile.objects.get(pk=profile_id)
183 183 lsPatterns = objProfile.pattern_set.all()
184 184 for element in lsPatterns:
185 185 if element.value > maxValuePattern:
186 186 maxPattern = element.value
187 187
188 188 if maxPattern < 10 :
189 189 newValuePattern = maxPattern + 1
190 190 newpattern = objProfile.pattern_set.create(value=newValuePattern)
191 191 newpattern.antennaup_set.create(value=txtAntennaUp,tx=txtTxUp,rx=txtRxUp,ues=txtUesUp)
192 192 newpattern.antennadown_set.create(value=txtAntennaDown,tx=txtTxDown,rx=txtRxDown,ues=txtUesDown)
193 193
194 194 newurl = '/abscontrol/%d/view/%d' % (int(profile_id), newpattern.id)
195 195 else:
196 196 newurl = '/abscontrol/edit/%d' % (int(profile_id))
197 197 else:
198 198 txtAntennaUpId = request.POST["txtAntennaUpId"]
199 199 objAntennaUp = AntennaUp.objects.get(pk=txtAntennaUpId)
200 200 objAntennaUp.value = txtAntennaUp
201 201 objAntennaUp.tx = txtTxUp
202 202 objAntennaUp.rx = txtRxUp
203 203 objAntennaUp.ues = txtUesUp
204 204 objAntennaUp.save()
205 205
206 206 txtAntennaDownId = request.POST["txtAntennaDownId"]
207 207 objAntennaDown = AntennaDown.objects.get(pk=txtAntennaDownId)
208 208 objAntennaDown.value = txtAntennaDown
209 209 objAntennaDown.tx = txtTxDown
210 210 objAntennaDown.rx = txtRxDown
211 211 objAntennaDown.ues = txtUesDown
212 212 objAntennaDown.save()
213 213
214 214 newurl = '/abscontrol/%d/view/%d' % (int(profile_id), int(pattern_id))
215 215
216 216 return redirect(newurl)
217 217
218 218 def viewPattern(request, profile_id, pattern_id):
219 219
220 220 profile_list = Profile.objects.all()
221 221 objProfile = Profile.objects.get(pk=profile_id)
222 222
223 223 patternChoosen = Pattern.objects.get(pk=pattern_id)
224 224
225 225 objAntennaUp = patternChoosen.antennaup_set.get()
226 226 objAntennaDown = patternChoosen.antennadown_set.get()
227 227
228 228 lsPatterns = objProfile.pattern_set.all()
229 229
230 230 return render_to_response('abscontrol/viewPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
231 231 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
232 232 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
233 233 })
234 234
235 235 def deletePattern(request, profile_id, pattern_id):
236 236 newurl = '/abscontrol/edit/%d' % int(profile_id)
237 237
238 238 return redirect(newurl)
239 239
240 240 def importProfile(request):
241
242 return render_to_response('abscontrol/import.html', { })
243
244 def saveImport(request):
241 profile_list = Profile.objects.all()
242 return render_to_response('abscontrol/import.html', {'profile_list': profile_list,})
243
244 def showImport(request):
245 245 if request.method == 'POST':
246 246 txtFilename = request.FILES['txtFile']
247 247 if txtFilename:
248 248 destination = open('/tmp/'+txtFilename.name, 'wb+')
249 249 for chunk in txtFilename.chunks():
250 250 destination.write(chunk)
251 251 destination.close()
252 252 filename = '/tmp/'+txtFilename.name
253 253 readFile = readABSFile(filename)
254 254 expName, num_patterns, patterns = readFile.getMetadata()
255 255 else:
256 256 txtFilename = "Error"
257 257 #content = "Error"
258 258 expName = ""
259 259 num_patterns = 0
260 260
261 return render_to_response('abscontrol/upload.html', {'txtFilename': txtFilename, 'patterns' : patterns,
262 'expName' : expName, 'num_patterns' : num_patterns,
263 })
261 return render_to_response('abscontrol/upload-edit.html', {'txtFilename': txtFilename, 'patterns' : patterns,
262 'expName' : expName, 'num_patterns' : num_patterns,
263 })
264
265 def saveImport(request):
266 patterns = []
267
268 expName = request.POST["txtProfile"]
269 num_patterns = int(request.POST["txtNumPatterns"])
270
271 newprofile = Profile(name=expName)
272 newprofile.save()
273
274 for i in range(0,num_patterns):
275 number = request.POST["txtNumberPattern"+str(i+1)]
276 txtAntennaUp = request.POST["txtAntennaUp"+str(i+1)]
277 txtAntennaDown = request.POST["txtAntennaDown"+str(i+1)]
278 dicPattern = {"number" : number, "up" : txtAntennaUp, "down" : txtAntennaDown}
279 patterns.append(dicPattern)
280 newpattern = newprofile.pattern_set.create(value=number)
281 newpattern.antennaup_set.create(value=txtAntennaUp)
282 newpattern.antennadown_set.create(value=txtAntennaDown)
283
284 newurl = '/abscontrol/view/%d' % newprofile.id
285
286 return redirect(newurl)
287 '''
288 return render_to_response('abscontrol/upload-view.html', {'expName' : expName, 'patterns' : patterns,
289 'num_patterns' : num_patterns,
290 })
291 '''
264 292
265 293 def overJRO(request, profile_id, pattern_id, antenna_id):
266 294 if request.GET["beam"] == "Up":
267 295 objAntenna = AntennaUp.objects.get(pk=antenna_id)
268 296 else:
269 297 objAntenna = AntennaDown.objects.get(pk=antenna_id)
270 298 objProfile = Profile.objects.get(pk=profile_id)
271 299 exp_name = objProfile.name
272 300
273 301 phase_tx = objAntenna.value
274 302 gain_tx = objAntenna.tx
275 303 gain_rx = objAntenna.rx
276 304 ues_tx = objAntenna.ues
277 305 only_rx = objAntenna.only_rx
278 306
279 307 return exp_name, phase_tx, gain_tx, gain_rx, ues_tx, only_rx
280
281
@@ -1,20 +1,23
1 1 /**
2 2 * @author Jose Antonio Sal y Rosas Celi
3 3 * @contact: jose.salyrosas@jro.igp.gob.pe, arturo.jasyrc@gmail.com
4 4 */
5 5
6 6 $(document).on('ready',function(){
7 7 $('#listProfiles').change(function() {
8 8 if($(this).val() != -1){
9 9 location.href="/abscontrol/view/" + $(this).val();
10 10 }
11 11 });
12 12 $('.activeOverJRO').click(function() {
13 13 profile_id = $('input[name=txtProfileId]').val();
14 14 pattern_id = $('input[name=txtPatternId]').val();
15 15 field_Id = $(this).attr("id");
16 16 field_value = $('input[name=txtAntenna'+field_Id+'Id]').val();
17 17 url = "/abscontrol/"+profile_id+"/"+pattern_id+"/overjro/"+field_value+"/?beam="+field_Id;
18 18 alert(url);
19 19 });
20 $('#lnkSaveImport').click(function(){
21 $('#frmImportProfile').submit();
22 });
20 23 }); No newline at end of file
@@ -1,16 +1,16
1 1 {% extends "abscontrol/index.html" %}
2 2 {% block title %}ABS CONTROL:::::IMPORT PROFILE{% endblock %}
3 3
4 {% block content %}
5 <div id="content">
6 <form action="/abscontrol/saveImport/" method="post" enctype="multipart/form-data">
4 {% block maincolumn %}
5 <div id="maincolumn">
6 <form action="/abscontrol/showImport/" method="post" enctype="multipart/form-data">
7 7 <div id="divPattern">
8 8 <div class="divUes">
9 9 <label for="lblFile">Choose File:</label>
10 10 <input type="file" name="txtFile" />
11 11 <input type="submit" name="btnSend" value="Upload" />
12 12 </div>
13 13 </div>
14 14 </form>
15 15 </div>
16 {% endblock %}
16 {% endblock %} No newline at end of file
1 NO CONTENT: file was removed
General Comments 0
You need to be logged in to leave comments. Login now