##// END OF EJS Templates
- Estandarizada la funcion de importar archivos ABS para utilizar el mismo formato de manejo de perfiles.
jsalyrosas -
r183:184
parent child
Show More
@@ -0,0 +1,23
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="MnuHorizontal" id="mnuProfiles">
8 <ul>
9 <li><a href="/abscontrol/new">New</a></li>
10 <li><a href="/abscontrol/import">Import</a></li>
11 </ul>
12 </nav>
13 {% endblock %}
14 {% block maincolumn %}
15 <div id="maincolumn">
16 <div id="divPattern">
17 <div class="divUes">
18 <label for="lblError">Error:</label>
19 <p>{{ txtError }}</p>
20 </div>
21 </div>
22 </div>
23 {% endblock %}
@@ -1,25 +1,25
1 from django.conf.urls import patterns, url
1 from django.conf.urls import patterns, url
2
2
3 urlpatterns = patterns('abscontrol.views',
3 urlpatterns = patterns('abscontrol.views',
4 url(r'^$', 'index'),
4 url(r'^$', 'index'),
5 url(r'^new/$', 'new'),
5 url(r'^new/$', 'new'),
6 url(r'^save/$', 'save'),
6 url(r'^save/$', 'save'),
7 url(r'^view/(?P<profile_id>\d+)/$', 'view'),
7 url(r'^view/(?P<profile_id>\d+)/$', 'view'),
8 url(r'^edit/(?P<profile_id>\d+)/$', 'edit'),
8 url(r'^edit/(?P<profile_id>\d+)/$', 'edit'),
9 url(r'^update/(?P<profile_id>\d+)/$', 'update'),
9 url(r'^update/(?P<profile_id>\d+)/$', 'update'),
10 url(r'^changeName/(?P<profile_id>\d+)/$', 'changeName'),
10 url(r'^changeName/(?P<profile_id>\d+)/$', 'changeName'),
11 #url(r'^(?P<profile_id>\d+)/$', 'detail'),
11 #url(r'^(?P<profile_id>\d+)/$', 'detail'),
12 url(r'^(?P<profile_id>\d+)/add/$', 'addPattern'),
12 url(r'^(?P<profile_id>\d+)/add/$', 'addPattern'),
13 url(r'^(?P<profile_id>\d+)/save/$', 'savePattern'),
13 url(r'^(?P<profile_id>\d+)/save/$', 'savePattern'),
14 url(r'^(?P<profile_id>\d+)/edit/(?P<pattern_id>\d+)/$', 'editPattern'),
14 url(r'^(?P<profile_id>\d+)/edit/(?P<pattern_id>\d+)/$', 'editPattern'),
15 url(r'^(?P<profile_id>\d+)/view/(?P<pattern_id>\d+)/$', 'viewPattern'),
15 url(r'^(?P<profile_id>\d+)/view/(?P<pattern_id>\d+)/$', 'viewPattern'),
16 url(r'^(?P<profile_id>\d+)/delete/(?P<pattern_id>\d+)/$', 'deletePattern'),
16 url(r'^(?P<profile_id>\d+)/delete/(?P<pattern_id>\d+)/$', 'deletePattern'),
17 #url(r'^(?P<poll_id>\d+)/results/$', 'results'),
17 #url(r'^(?P<poll_id>\d+)/results/$', 'results'),
18 #url(r'^(?P<poll_id>\d+)/vote/$', 'vote'),
18 #url(r'^(?P<poll_id>\d+)/vote/$', 'vote'),
19 url(r'^import/$', 'importProfile'),
19 url(r'^import/$', 'importProfile'),
20 url(r'^showImport/$', 'showImport'),
20 url(r'^upload/$', 'upload'),
21 url(r'^saveImport/$', 'saveImport'),
21 #url(r'^saveImport/$', 'saveImport'),
22 url(r'^(?P<profile_id>\d+)/(?P<pattern_id>\d+)/overjro/(?P<antenna_id>\d+)/$', 'overJRO'),
22 url(r'^(?P<profile_id>\d+)/(?P<pattern_id>\d+)/overjro/(?P<antenna_id>\d+)/$', 'overJRO'),
23 url(r'^export/(?P<profile_id>\d+)/$', 'export'),
23 url(r'^export/(?P<profile_id>\d+)/$', 'export'),
24 url(r'^send/(?P<profile_id>\d+)/$', 'send'),
24 url(r'^send/(?P<profile_id>\d+)/$', 'send'),
25 ) No newline at end of file
25 )
@@ -1,424 +1,409
1 from django.shortcuts import render_to_response, redirect
1 from django.shortcuts import render_to_response, redirect
2 from django.http import HttpResponse
2 from django.http import HttpResponse
3 from django.conf import settings
3 from django.conf import settings
4 from django.utils.encoding import smart_str
4 from django.utils.encoding import smart_str
5 from django.core.servers.basehttp import FileWrapper
5 from django.core.servers.basehttp import FileWrapper
6 import mimetypes
6 import mimetypes
7
7
8 from datetime import datetime
8 from datetime import datetime
9
9
10 from abscontrol.models import Profile, Pattern, AntennaDown, AntennaUp
10 from abscontrol.models import Profile, Pattern, AntennaDown, AntennaUp
11
11
12 from util.readABSFile import readABSFile
12 from util.readABSFile import readABSFile
13 from util.saveABSFile import saveABSFile
13 from util.saveABSFile import saveABSFile
14 from scripts.sendFile import sendFile
14 from scripts.sendFile import sendFile
15
15
16 txtAntenna = "[[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]," \
16 txtAntenna = "[[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]," \
17 "[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]," \
17 "[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]," \
18 "[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]," \
18 "[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]," \
19 "[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]," \
19 "[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]," \
20 "[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]," \
20 "[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]," \
21 "[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]," \
21 "[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]," \
22 "[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]," \
22 "[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]," \
23 "[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]]"
23 "[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]]"
24
24
25 txtTxUp = "[[1,1,1,1,1,1,1,1]," \
25 txtTxUp = "[[1,1,1,1,1,1,1,1]," \
26 "[1,1,1,1,1,1,1,1]," \
26 "[1,1,1,1,1,1,1,1]," \
27 "[1,1,1,1,1,1,1,1]," \
27 "[1,1,1,1,1,1,1,1]," \
28 "[1,1,1,1,1,1,1,1]," \
28 "[1,1,1,1,1,1,1,1]," \
29 "[1,1,1,1,1,1,1,1]," \
29 "[1,1,1,1,1,1,1,1]," \
30 "[1,1,1,1,1,1,1,1]," \
30 "[1,1,1,1,1,1,1,1]," \
31 "[1,1,1,1,1,1,1,1]," \
31 "[1,1,1,1,1,1,1,1]," \
32 "[1,1,1,1,1,1,1,1]]"
32 "[1,1,1,1,1,1,1,1]]"
33
33
34 txtTxDown = "[[1,1,1,1,0,0,0,0]," \
34 txtTxDown = "[[1,1,1,1,0,0,0,0]," \
35 "[1,1,1,1,0,0,0,0]," \
35 "[1,1,1,1,0,0,0,0]," \
36 "[1,1,1,1,0,0,0,0]," \
36 "[1,1,1,1,0,0,0,0]," \
37 "[1,1,1,1,0,0,0,0]," \
37 "[1,1,1,1,0,0,0,0]," \
38 "[0,0,0,0,1,1,1,1]," \
38 "[0,0,0,0,1,1,1,1]," \
39 "[0,0,0,0,1,1,1,1]," \
39 "[0,0,0,0,1,1,1,1]," \
40 "[0,0,0,0,1,1,1,1]," \
40 "[0,0,0,0,1,1,1,1]," \
41 "[0,0,0,0,1,1,1,1]]"
41 "[0,0,0,0,1,1,1,1]]"
42
42
43 txtRxUp = "[[0,0,0,0,1,1,1,1]," \
43 txtRxUp = "[[0,0,0,0,1,1,1,1]," \
44 "[0,0,0,0,1,1,1,1]," \
44 "[0,0,0,0,1,1,1,1]," \
45 "[0,0,0,0,1,1,1,1]," \
45 "[0,0,0,0,1,1,1,1]," \
46 "[0,0,0,0,1,1,1,1]," \
46 "[0,0,0,0,1,1,1,1]," \
47 "[1,1,1,1,1,1,1,1]," \
47 "[1,1,1,1,1,1,1,1]," \
48 "[1,1,1,1,1,1,1,1]," \
48 "[1,1,1,1,1,1,1,1]," \
49 "[1,1,1,1,1,1,1,1]," \
49 "[1,1,1,1,1,1,1,1]," \
50 "[1,1,1,1,1,1,1,1]]"
50 "[1,1,1,1,1,1,1,1]]"
51
51
52 txtRxDown = "[[1,1,1,1,1,1,1,1]," \
52 txtRxDown = "[[1,1,1,1,1,1,1,1]," \
53 "[1,1,1,1,1,1,1,1]," \
53 "[1,1,1,1,1,1,1,1]," \
54 "[1,1,1,1,1,1,1,1]," \
54 "[1,1,1,1,1,1,1,1]," \
55 "[1,1,1,1,1,1,1,1]," \
55 "[1,1,1,1,1,1,1,1]," \
56 "[1,1,1,1,1,1,1,1]," \
56 "[1,1,1,1,1,1,1,1]," \
57 "[1,1,1,1,1,1,1,1]," \
57 "[1,1,1,1,1,1,1,1]," \
58 "[1,1,1,1,1,1,1,1]," \
58 "[1,1,1,1,1,1,1,1]," \
59 "[1,1,1,1,1,1,1,1]]"
59 "[1,1,1,1,1,1,1,1]]"
60
60
61 txtUes = "[0.533333,0.00000,1.06667,0.00000]"
61 txtUes = "[0.533333,0.00000,1.06667,0.00000]"
62
62
63 def index(request):
63 def index(request):
64 #latest_poll_list = profileAntenna.objects.all().order_by('-pub_date')[:5]
64 #latest_poll_list = profileAntenna.objects.all().order_by('-pub_date')[:5]
65 profile_list = Profile.objects.filter(state=1)
65 profile_list = Profile.objects.filter(state=1)
66 return render_to_response('abscontrol/index.html', {'profile_list': profile_list})
66 return render_to_response('abscontrol/index.html', {'profile_list': profile_list})
67
67
68 def new(request):
68 def new(request):
69 profile_list = Profile.objects.filter(state=1)
69 profile_list = Profile.objects.filter(state=1)
70 txtProfile = datetime.now().strftime("%Y%m%d%H%M%S%f")
70 txtProfile = datetime.now().strftime("%Y%m%d%H%M%S%f")
71 newprofile = Profile(name=txtProfile)
71 newprofile = Profile(name=txtProfile)
72 newprofile.save()
72 newprofile.save()
73
73
74 lsPatterns = None
74 lsPatterns = None
75
75
76 return render_to_response('abscontrol/new.html', {'profile_list': profile_list,
76 return render_to_response('abscontrol/new.html', {'profile_list': profile_list,
77 'txtAntenna' : txtAntenna,
77 'txtAntenna' : txtAntenna,
78 'profile_name' : newprofile.name,
78 'profile_name' : newprofile.name,
79 'profile_id' : newprofile.id,
79 'profile_id' : newprofile.id,
80 'lsPatterns' : lsPatterns,
80 'lsPatterns' : lsPatterns,
81 'txtUes' : txtUes, 'txtTxUp' : txtTxUp,
81 'txtUes' : txtUes, 'txtTxUp' : txtTxUp,
82 'txtTxDown' : txtTxDown, 'txtRxUp' : txtRxUp,
82 'txtTxDown' : txtTxDown, 'txtRxUp' : txtRxUp,
83 'txtRxDown' : txtRxDown,
83 'txtRxDown' : txtRxDown,
84 })
84 })
85
85
86 def save(request):
86 def save(request):
87
87
88 txtProfile = request.POST["txtProfile"]
88 txtProfile = request.POST["txtProfile"]
89
89
90 txtAntennaUp = request.POST["txtAntennaUp"]
90 txtAntennaUp = request.POST["txtAntennaUp"]
91 txtTxUp = request.POST["txtTxUp"]
91 txtTxUp = request.POST["txtTxUp"]
92 txtRxUp = request.POST["txtRxUp"]
92 txtRxUp = request.POST["txtRxUp"]
93 txtUesUp = request.POST["txtUesUp"]
93 txtUesUp = request.POST["txtUesUp"]
94
94
95 txtAntennaDown = request.POST["txtAntennaDown"]
95 txtAntennaDown = request.POST["txtAntennaDown"]
96 txtTxDown = request.POST["txtTxDown"]
96 txtTxDown = request.POST["txtTxDown"]
97 txtRxDown = request.POST["txtRxDown"]
97 txtRxDown = request.POST["txtRxDown"]
98 txtUesDown = request.POST["txtUesDown"]
98 txtUesDown = request.POST["txtUesDown"]
99
99
100 newprofile = Profile(name=txtProfile)
100 newprofile = Profile(name=txtProfile)
101 newprofile.save()
101 newprofile.save()
102
102
103 newpattern = newprofile.pattern_set.create(value=1)
103 newpattern = newprofile.pattern_set.create(value=1)
104 newpattern.antennaup_set.create(value=txtAntennaUp,tx=txtTxUp,rx=txtRxUp,ues=txtUesUp)
104 newpattern.antennaup_set.create(value=txtAntennaUp,tx=txtTxUp,rx=txtRxUp,ues=txtUesUp)
105 newpattern.antennadown_set.create(value=txtAntennaDown,tx=txtTxDown,rx=txtRxDown,ues=txtUesDown)
105 newpattern.antennadown_set.create(value=txtAntennaDown,tx=txtTxDown,rx=txtRxDown,ues=txtUesDown)
106
106
107 newurl = '/abscontrol/view/%d' % newprofile.id
107 newurl = '/abscontrol/view/%d' % newprofile.id
108
108
109 return redirect(newurl)
109 return redirect(newurl)
110
110
111 def update(request, profile_id):
111 def update(request, profile_id):
112 txtProfile = request.POST["txtProfile"]
112 txtProfile = request.POST["txtProfile"]
113
113
114 objProfile = Profile.objects.get(pk=profile_id)
114 objProfile = Profile.objects.get(pk=profile_id)
115 objProfile.name = txtProfile
115 objProfile.name = txtProfile
116 objProfile.state = 1
116 objProfile.state = 1
117 objProfile.save()
117 objProfile.save()
118
118
119 newurl = '/abscontrol/view/%d' % objProfile.id
119 newurl = '/abscontrol/view/%d' % objProfile.id
120 return redirect(newurl)
120 return redirect(newurl)
121
121
122 def changeName(request, profile_id):
122 def changeName(request, profile_id):
123 profile_list = Profile.objects.filter(state=1)
123 profile_list = Profile.objects.filter(state=1)
124 objProfile = Profile.objects.get(pk=profile_id)
124 objProfile = Profile.objects.get(pk=profile_id)
125 lsPatterns = objProfile.pattern_set.all()
125 lsPatterns = objProfile.pattern_set.all()
126
126
127 return render_to_response('abscontrol/changeName.html', {'profile_list': profile_list,
127 return render_to_response('abscontrol/changeName.html', {'profile_list': profile_list,
128 'objProfile': objProfile,
128 'objProfile': objProfile,
129 'lsPatterns' : lsPatterns,
129 'lsPatterns' : lsPatterns,
130 })
130 })
131
131
132 def view(request, profile_id):
132 def view(request, profile_id):
133 nextPattern = 0
133 nextPattern = 0
134
134
135 if request.method == 'GET' and 'pattern' in request.GET:
135 if request.method == 'GET' and 'pattern' in request.GET:
136 pattern_value = request.GET["pattern"]
136 pattern_value = request.GET["pattern"]
137 else:
137 else:
138 pattern_value = 1
138 pattern_value = 1
139
139
140 profile_list = Profile.objects.filter(state=1)
140 profile_list = Profile.objects.filter(state=1)
141 objProfile = Profile.objects.get(pk=profile_id)
141 objProfile = Profile.objects.get(pk=profile_id)
142
142
143 lsPatterns = objProfile.pattern_set.all()
143 lsPatterns = objProfile.pattern_set.all()
144 patternChoosen = objProfile.pattern_set.get(value=pattern_value)
144 patternChoosen = objProfile.pattern_set.get(value=pattern_value)
145 objAntennaUp = patternChoosen.antennaup_set.get()
145 objAntennaUp = patternChoosen.antennaup_set.get()
146 objAntennaDown = patternChoosen.antennadown_set.get()
146 objAntennaDown = patternChoosen.antennadown_set.get()
147
147
148 if len(lsPatterns) > 1:
148 if len(lsPatterns) > 1:
149 if pattern_value == 1:
149 if pattern_value == 1:
150 nextValuePattern = pattern_value + 1
150 nextValuePattern = pattern_value + 1
151 nextPattern = objProfile.pattern_set.get(value=nextValuePattern)
151 nextPattern = objProfile.pattern_set.get(value=nextValuePattern)
152
152
153
153
154 return render_to_response('abscontrol/view.html', {'objProfile': objProfile, 'profile_list': profile_list,
154 return render_to_response('abscontrol/view.html', {'objProfile': objProfile, 'profile_list': profile_list,
155 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
155 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
156 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
156 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
157 'nextPattern' : nextPattern,
157 'nextPattern' : nextPattern,
158 })
158 })
159
159
160 def edit(request, profile_id):
160 def edit(request, profile_id):
161 if request.method == 'GET' and 'pattern' in request.GET:
161 if request.method == 'GET' and 'pattern' in request.GET:
162 pattern_value = request.GET["pattern"]
162 pattern_value = request.GET["pattern"]
163 else:
163 else:
164 pattern_value = 1
164 pattern_value = 1
165
165
166 profile_list = Profile.objects.filter(state=1)
166 profile_list = Profile.objects.filter(state=1)
167 objProfile = Profile.objects.get(pk=profile_id)
167 objProfile = Profile.objects.get(pk=profile_id)
168
168
169 lsPatterns = objProfile.pattern_set.all()
169 lsPatterns = objProfile.pattern_set.all()
170 patternChoosen = objProfile.pattern_set.get(value=pattern_value)
170 patternChoosen = objProfile.pattern_set.get(value=pattern_value)
171 objAntennaUp = patternChoosen.antennaup_set.get()
171 objAntennaUp = patternChoosen.antennaup_set.get()
172 objAntennaDown = patternChoosen.antennadown_set.get()
172 objAntennaDown = patternChoosen.antennadown_set.get()
173
173
174 return render_to_response('abscontrol/edit.html', {'objProfile': objProfile, 'profile_list': profile_list,
174 return render_to_response('abscontrol/edit.html', {'objProfile': objProfile, 'profile_list': profile_list,
175 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
175 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
176 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
176 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
177 })
177 })
178
178
179 def addPattern(request, profile_id):
179 def addPattern(request, profile_id):
180 profile_list = Profile.objects.filter(state=1)
180 profile_list = Profile.objects.filter(state=1)
181 objProfile = Profile.objects.get(pk=profile_id)
181 objProfile = Profile.objects.get(pk=profile_id)
182
182
183 return render_to_response('abscontrol/addPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
183 return render_to_response('abscontrol/addPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
184 'txtAntenna' : txtAntenna, 'txtUes' : txtUes,
184 'txtAntenna' : txtAntenna, 'txtUes' : txtUes,
185 'txtTxUp' : txtTxUp, 'txtTxDown' : txtTxDown,
185 'txtTxUp' : txtTxUp, 'txtTxDown' : txtTxDown,
186 'txtRxUp' : txtRxUp, 'txtRxDown' : txtRxDown,
186 'txtRxUp' : txtRxUp, 'txtRxDown' : txtRxDown,
187 })
187 })
188
188
189 def editPattern(request, profile_id, pattern_id):
189 def editPattern(request, profile_id, pattern_id):
190 profile_list = Profile.objects.filter(state=1)
190 profile_list = Profile.objects.filter(state=1)
191 objProfile = Profile.objects.get(pk=profile_id)
191 objProfile = Profile.objects.get(pk=profile_id)
192 lsPatterns = objProfile.pattern_set.all()
192 lsPatterns = objProfile.pattern_set.all()
193 patternChoosen = Pattern.objects.get(pk=pattern_id)
193 patternChoosen = Pattern.objects.get(pk=pattern_id)
194 objAntennaUp = patternChoosen.antennaup_set.get()
194 objAntennaUp = patternChoosen.antennaup_set.get()
195 objAntennaDown = patternChoosen.antennadown_set.get()
195 objAntennaDown = patternChoosen.antennadown_set.get()
196
196
197 return render_to_response('abscontrol/editPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
197 return render_to_response('abscontrol/editPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
198 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
198 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
199 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
199 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
200 })
200 })
201
201
202 def savePattern(request, profile_id):
202 def savePattern(request, profile_id):
203 pattern_id = 0
203 pattern_id = 0
204 method = "save"
204 method = "save"
205
205
206 if 'pattern_id' in request.POST:
206 if 'pattern_id' in request.POST:
207 pattern_id = request.POST["pattern_id"]
207 pattern_id = request.POST["pattern_id"]
208 method = "update"
208 method = "update"
209
209
210 maxValuePattern = 0
210 maxValuePattern = 0
211 txtAntennaUp = request.POST["txtAntennaUp"]
211 txtAntennaUp = request.POST["txtAntennaUp"]
212 txtTxUp = request.POST["txtTxUp"]
212 txtTxUp = request.POST["txtTxUp"]
213 txtRxUp = request.POST["txtRxUp"]
213 txtRxUp = request.POST["txtRxUp"]
214 txtUesUp = request.POST["txtUesUp"]
214 txtUesUp = request.POST["txtUesUp"]
215
215
216 txtAntennaDown = request.POST["txtAntennaDown"]
216 txtAntennaDown = request.POST["txtAntennaDown"]
217 txtTxDown = request.POST["txtTxDown"]
217 txtTxDown = request.POST["txtTxDown"]
218 txtRxDown = request.POST["txtRxDown"]
218 txtRxDown = request.POST["txtRxDown"]
219 txtUesDown = request.POST["txtUesDown"]
219 txtUesDown = request.POST["txtUesDown"]
220
220
221 mode = request.POST["mode"]
221 mode = request.POST["mode"]
222
222
223 if method == "save":
223 if method == "save":
224 objProfile = Profile.objects.get(pk=profile_id)
224 objProfile = Profile.objects.get(pk=profile_id)
225 lsPatterns = objProfile.pattern_set.all()
225 lsPatterns = objProfile.pattern_set.all()
226 if len(lsPatterns) > 0:
226 if len(lsPatterns) > 0:
227 for element in lsPatterns:
227 for element in lsPatterns:
228 if element.value > maxValuePattern:
228 if element.value > maxValuePattern:
229 maxPattern = element.value
229 maxPattern = element.value
230 else:
230 else:
231 maxPattern = 0
231 maxPattern = 0
232
232
233 if maxPattern < 10 :
233 if maxPattern < 10 :
234 newValuePattern = maxPattern + 1
234 newValuePattern = maxPattern + 1
235 newpattern = objProfile.pattern_set.create(value=newValuePattern)
235 newpattern = objProfile.pattern_set.create(value=newValuePattern)
236 newpattern.antennaup_set.create(value=txtAntennaUp,tx=txtTxUp,rx=txtRxUp,ues=txtUesUp)
236 newpattern.antennaup_set.create(value=txtAntennaUp,tx=txtTxUp,rx=txtRxUp,ues=txtUesUp)
237 newpattern.antennadown_set.create(value=txtAntennaDown,tx=txtTxDown,rx=txtRxDown,ues=txtUesDown)
237 newpattern.antennadown_set.create(value=txtAntennaDown,tx=txtTxDown,rx=txtRxDown,ues=txtUesDown)
238 error = 0
238 error = 0
239 else:
239 else:
240 error = 1 # Can not add more patterns
240 error = 1 # Can not add more patterns
241
241
242 if mode == "e":
242 if mode == "e":
243 newurl = '/abscontrol/%d/edit/%d' % (int(profile_id), newpattern.id)
243 newurl = '/abscontrol/%d/edit/%d' % (int(profile_id), newpattern.id)
244 else:
244 else:
245 newurl = '/abscontrol/%d/view/%d' % (int(profile_id), newpattern.id)
245 newurl = '/abscontrol/%d/view/%d' % (int(profile_id), newpattern.id)
246 else:
246 else:
247 txtAntennaUpId = request.POST["txtAntennaUpId"]
247 txtAntennaUpId = request.POST["txtAntennaUpId"]
248 objAntennaUp = AntennaUp.objects.get(pk=txtAntennaUpId)
248 objAntennaUp = AntennaUp.objects.get(pk=txtAntennaUpId)
249 objAntennaUp.value = txtAntennaUp
249 objAntennaUp.value = txtAntennaUp
250 objAntennaUp.tx = txtTxUp
250 objAntennaUp.tx = txtTxUp
251 objAntennaUp.rx = txtRxUp
251 objAntennaUp.rx = txtRxUp
252 objAntennaUp.ues = txtUesUp
252 objAntennaUp.ues = txtUesUp
253 objAntennaUp.save()
253 objAntennaUp.save()
254
254
255 txtAntennaDownId = request.POST["txtAntennaDownId"]
255 txtAntennaDownId = request.POST["txtAntennaDownId"]
256 objAntennaDown = AntennaDown.objects.get(pk=txtAntennaDownId)
256 objAntennaDown = AntennaDown.objects.get(pk=txtAntennaDownId)
257 objAntennaDown.value = txtAntennaDown
257 objAntennaDown.value = txtAntennaDown
258 objAntennaDown.tx = txtTxDown
258 objAntennaDown.tx = txtTxDown
259 objAntennaDown.rx = txtRxDown
259 objAntennaDown.rx = txtRxDown
260 objAntennaDown.ues = txtUesDown
260 objAntennaDown.ues = txtUesDown
261 objAntennaDown.save()
261 objAntennaDown.save()
262
262
263 if mode == "e":
263 if mode == "e":
264 newurl = '/abscontrol/%d/edit/%d' % (int(profile_id), int(pattern_id))
264 newurl = '/abscontrol/%d/edit/%d' % (int(profile_id), int(pattern_id))
265 else:
265 else:
266 newurl = '/abscontrol/%d/view/%d' % (int(profile_id), int(pattern_id))
266 newurl = '/abscontrol/%d/view/%d' % (int(profile_id), int(pattern_id))
267
267
268 return redirect(newurl)
268 return redirect(newurl)
269
269
270 def viewPattern(request, profile_id, pattern_id):
270 def viewPattern(request, profile_id, pattern_id):
271
271
272 profile_list = Profile.objects.filter(state=1)
272 profile_list = Profile.objects.filter(state=1)
273 objProfile = Profile.objects.get(pk=profile_id)
273 objProfile = Profile.objects.get(pk=profile_id)
274
274
275 patternChoosen = Pattern.objects.get(pk=pattern_id)
275 patternChoosen = Pattern.objects.get(pk=pattern_id)
276
276
277 objAntennaUp = patternChoosen.antennaup_set.get()
277 objAntennaUp = patternChoosen.antennaup_set.get()
278 objAntennaDown = patternChoosen.antennadown_set.get()
278 objAntennaDown = patternChoosen.antennadown_set.get()
279
279
280 lsPatterns = objProfile.pattern_set.all()
280 lsPatterns = objProfile.pattern_set.all()
281
281
282 return render_to_response('abscontrol/viewPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
282 return render_to_response('abscontrol/viewPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
283 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
283 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
284 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
284 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
285 })
285 })
286
286
287 def deletePattern(request, profile_id, pattern_id):
287 def deletePattern(request, profile_id, pattern_id):
288 newurl = '/abscontrol/edit/%d' % int(profile_id)
288 newurl = '/abscontrol/edit/%d' % int(profile_id)
289
289
290 return redirect(newurl)
290 return redirect(newurl)
291
291
292 def importProfile(request):
292 def importProfile(request):
293 profile_list = Profile.objects.filter(state=1)
293 profile_list = Profile.objects.filter(state=1)
294 return render_to_response('abscontrol/import.html', {'profile_list': profile_list,})
294 return render_to_response('abscontrol/import.html', {'profile_list': profile_list,})
295
295
296 def showImport(request):
296 def upload(request):
297 profile_list = Profile.objects.filter(state=1)
297 profile_list = Profile.objects.filter(state=1)
298 if request.method == 'POST':
298 if request.method == 'POST':
299 txtFilename = request.FILES['txtFile']
299 txtFilename = request.FILES['txtFile']
300 if txtFilename:
300 if txtFilename:
301 destination = open('/tmp/'+txtFilename.name, 'wb+')
301 destination = open('/tmp/'+txtFilename.name, 'wb+')
302 for chunk in txtFilename.chunks():
302 for chunk in txtFilename.chunks():
303 destination.write(chunk)
303 destination.write(chunk)
304 destination.close()
304 destination.close()
305 filename = '/tmp/'+txtFilename.name
305 filename = '/tmp/'+txtFilename.name
306 readFile = readABSFile(filename)
306 readFile = readABSFile(filename)
307 expName, num_patterns, patterns = readFile.getMetadata()
307 expName, num_patterns, patterns = readFile.getMetadata()
308 else:
308
309 txtFilename = "Error"
309 if expName != "" and num_patterns > 0:
310 #content = "Error"
310 newprofile = Profile(name=expName)
311 expName = ""
311 newprofile.save()
312 num_patterns = 0
312 newprofile.state = 1
313
314 for element in patterns:
315 newpattern = newprofile.pattern_set.create(value=element["number"])
316 newpattern.antennaup_set.create(value=element["up"])
317 newpattern.antennadown_set.create(value=element["down"])
318
319 newprofile.save()
320
321 newurl = '/abscontrol/edit/%d' % int(newprofile.id)
322 return redirect(newurl)
323 else:
324 txtError = "Experiment's name not found or the number of patterns is 0."
325 return render_to_response('abscontrol/error.html', {'profile_list': profile_list,
326 'txtError' : txtError, })
327 else:
328 txtError = "No file."
313
329
314 return render_to_response('abscontrol/upload-edit.html', {'txtFilename': txtFilename, 'patterns' : patterns,
330 return render_to_response('abscontrol/error.html', {'profile_list': profile_list, 'txtError' : txtError, })
315 'expName' : expName, 'num_patterns' : num_patterns,
316 'profile_list': profile_list,
317 })
318
319 def saveImport(request):
320 patterns = []
321
322 expName = request.POST["txtProfile"]
323 num_patterns = int(request.POST["txtNumPatterns"])
324
325 newprofile = Profile(name=expName)
326 newprofile.save()
327
328 for i in range(0,num_patterns):
329 number = request.POST["txtNumberPattern"+str(i+1)]
330 txtAntennaUp = request.POST["txtAntennaUp"+str(i+1)]
331 txtAntennaDown = request.POST["txtAntennaDown"+str(i+1)]
332 dicPattern = {"number" : number, "up" : txtAntennaUp, "down" : txtAntennaDown}
333 patterns.append(dicPattern)
334 newpattern = newprofile.pattern_set.create(value=number)
335 newpattern.antennaup_set.create(value=txtAntennaUp)
336 newpattern.antennadown_set.create(value=txtAntennaDown)
337
338 newurl = '/abscontrol/view/%d' % newprofile.id
339
340 return redirect(newurl)
341 '''
342 return render_to_response('abscontrol/upload-view.html', {'expName' : expName, 'patterns' : patterns,
343 'num_patterns' : num_patterns,
344 })
345 '''
346
331
347 def overJRO(request, profile_id, pattern_id, antenna_id):
332 def overJRO(request, profile_id, pattern_id, antenna_id):
348 if request.GET["beam"] == "Up":
333 if request.GET["beam"] == "Up":
349 objAntenna = AntennaUp.objects.get(pk=antenna_id)
334 objAntenna = AntennaUp.objects.get(pk=antenna_id)
350 else:
335 else:
351 objAntenna = AntennaDown.objects.get(pk=antenna_id)
336 objAntenna = AntennaDown.objects.get(pk=antenna_id)
352 objProfile = Profile.objects.get(pk=profile_id)
337 objProfile = Profile.objects.get(pk=profile_id)
353 exp_name = objProfile.name
338 exp_name = objProfile.name
354
339
355 phase_tx = objAntenna.value
340 phase_tx = objAntenna.value
356 gain_tx = objAntenna.tx
341 gain_tx = objAntenna.tx
357 gain_rx = objAntenna.rx
342 gain_rx = objAntenna.rx
358 ues_tx = objAntenna.ues
343 ues_tx = objAntenna.ues
359 only_rx = objAntenna.only_rx
344 only_rx = objAntenna.only_rx
360
345
361 return exp_name, phase_tx, gain_tx, gain_rx, ues_tx, only_rx
346 return exp_name, phase_tx, gain_tx, gain_rx, ues_tx, only_rx
362
347
363 def export(request, profile_id):
348 def export(request, profile_id):
364 listPatterns = []
349 listPatterns = []
365 objProfile = Profile.objects.get(pk=profile_id)
350 objProfile = Profile.objects.get(pk=profile_id)
366 exp_name = objProfile.name
351 exp_name = objProfile.name
367 lsPatterns = objProfile.pattern_set.all()
352 lsPatterns = objProfile.pattern_set.all()
368 for element in lsPatterns:
353 for element in lsPatterns:
369 objAntennaUp = element.antennaup_set.get()
354 objAntennaUp = element.antennaup_set.get()
370 objAntennaDown = element.antennadown_set.get()
355 objAntennaDown = element.antennadown_set.get()
371 dicPatterns = {"number" : element.value, "up" : objAntennaUp.value, "down" : objAntennaDown.value}
356 dicPatterns = {"number" : element.value, "up" : objAntennaUp.value, "down" : objAntennaDown.value}
372 listPatterns.append(dicPatterns)
357 listPatterns.append(dicPatterns)
373
358
374 absFile = saveABSFile()
359 absFile = saveABSFile()
375 absFile.setParameters(settings.MEDIA_ROOT, exp_name, listPatterns)
360 absFile.setParameters(settings.MEDIA_ROOT, exp_name, listPatterns)
376 filename, filesize = absFile.save()
361 filename, filesize = absFile.save()
377
362
378 wrapper = FileWrapper( open( filename, "r" ) )
363 wrapper = FileWrapper( open( filename, "r" ) )
379 content_type = mimetypes.guess_type( filename )[0]
364 content_type = mimetypes.guess_type( filename )[0]
380
365
381 response = HttpResponse(wrapper, content_type = content_type)
366 response = HttpResponse(wrapper, content_type = content_type)
382 response['Content-Description'] = 'File Transfer'
367 response['Content-Description'] = 'File Transfer'
383 response['Content-Disposition'] = 'attachment; filename=%s' % smart_str(filename)
368 response['Content-Disposition'] = 'attachment; filename=%s' % smart_str(filename)
384 response['Content-Transfer-Encoding'] = 'binary'
369 response['Content-Transfer-Encoding'] = 'binary'
385 response['Expires'] = '0'
370 response['Expires'] = '0'
386 response['Cache-Control'] = 'must-revalidate'
371 response['Cache-Control'] = 'must-revalidate'
387 response['Pragma'] = 'public'
372 response['Pragma'] = 'public'
388 response['Content-Length'] = '%s' % str(filesize)
373 response['Content-Length'] = '%s' % str(filesize)
389 response['X-Sendfile'] = '%s' % smart_str(filename)
374 response['X-Sendfile'] = '%s' % smart_str(filename)
390
375
391 return response
376 return response
392
377
393 def send(request, profile_id):
378 def send(request, profile_id):
394 listPatterns = []
379 listPatterns = []
395 objProfile = Profile.objects.get(pk=profile_id)
380 objProfile = Profile.objects.get(pk=profile_id)
396 exp_name = objProfile.name
381 exp_name = objProfile.name
397
382
398 lsPatterns = objProfile.pattern_set.all()
383 lsPatterns = objProfile.pattern_set.all()
399 for element in lsPatterns:
384 for element in lsPatterns:
400 objAntennaUp = element.antennaup_set.get()
385 objAntennaUp = element.antennaup_set.get()
401 objAntennaDown = element.antennadown_set.get()
386 objAntennaDown = element.antennadown_set.get()
402 dicPatterns = {"number" : element.value, "up" : objAntennaUp.value, "down" : objAntennaDown.value}
387 dicPatterns = {"number" : element.value, "up" : objAntennaUp.value, "down" : objAntennaDown.value}
403 listPatterns.append(dicPatterns)
388 listPatterns.append(dicPatterns)
404
389
405 absFile = saveABSFile()
390 absFile = saveABSFile()
406 absFile.setParameters(settings.MEDIA_ROOT, exp_name, listPatterns)
391 absFile.setParameters(settings.MEDIA_ROOT, exp_name, listPatterns)
407 filename, filesize = absFile.save()
392 filename, filesize = absFile.save()
408
393
409 apiclient = sendFile()
394 apiclient = sendFile()
410 apiclient.execute(filename)
395 apiclient.execute(filename)
411 output = apiclient.getOutput()
396 output = apiclient.getOutput()
412
397
413 if output == "OK":
398 if output == "OK":
414 message = "File sent successfully."
399 message = "File sent successfully."
415 objProfile.hits += 1
400 objProfile.hits += 1
416 objProfile.save()
401 objProfile.save()
417 else:
402 else:
418 message = "Error sending file."
403 message = "Error sending file."
419
404
420 profile_list = Profile.objects.all()
405 profile_list = Profile.objects.all()
421
406
422 return render_to_response('abscontrol/sendFile.html', {'message': message, "profile_list" : profile_list,
407 return render_to_response('abscontrol/sendFile.html', {'message': message, "profile_list" : profile_list,
423 'objProfile': objProfile,
408 'objProfile': objProfile,
424 })
409 })
@@ -1,23 +1,23
1 {% extends "abscontrol/index.html" %}
1 {% extends "abscontrol/index.html" %}
2 {% block title %}ABS CONTROL:::::IMPORT PROFILE{% endblock %}
2 {% block title %}ABS CONTROL:::::IMPORT PROFILE{% endblock %}
3
3
4 {% block mnu_profile %}
4 {% block mnu_profile %}
5 <nav class="MnuHorizontal" id="mnuProfiles">
5 <nav class="MnuHorizontal" id="mnuProfiles">
6 <ul>
6 <ul>
7 <li><a href="#" id="lnkUpload">Upload</a></li>
7 <li><a href="#" id="lnkUpload">Upload</a></li>
8 <li><a href="#" id="lnkCancel">Cancel</a></li>
8 <li><a href="#" id="lnkCancel">Cancel</a></li>
9 </ul>
9 </ul>
10 </nav>
10 </nav>
11 {% endblock %}
11 {% endblock %}
12 {% block maincolumn %}
12 {% block maincolumn %}
13 <div id="maincolumn">
13 <div id="maincolumn">
14 <form name="frmImport" id="frmImport" action="/abscontrol/showImport/" method="post" enctype="multipart/form-data">
14 <form name="frmImport" id="frmImport" action="/abscontrol/upload/" method="post" enctype="multipart/form-data">
15 <div id="divPattern">
15 <div id="divPattern">
16 <div class="divUes">
16 <div class="divUes">
17 <label for="lblFile">Choose File:</label>
17 <label for="lblFile">Choose File:</label>
18 <input type="file" name="txtFile" />
18 <input type="file" name="txtFile" />
19 </div>
19 </div>
20 </div>
20 </div>
21 </form>
21 </form>
22 </div>
22 </div>
23 {% endblock %} No newline at end of file
23 {% endblock %}
1 NO CONTENT: file was removed
NO CONTENT: file was removed
1 NO CONTENT: file was removed
NO CONTENT: file was removed
General Comments 0
You need to be logged in to leave comments. Login now