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