##// END OF EJS Templates
- Agregadas las vistas y funciones para administrar los patrones de cada perfil.
jsalyrosas -
r134:135
parent child
Show More
@@ -0,0 +1,25
1 /**
2 * @author Jose Antonio Sal y Rosas Celi
3 * @contact: jose.salyrosas@jro.igp.gob.pe, arturo.jasyrc@gmail.com
4 */
5
6 $(document).on('ready',function(){
7 $('#listProfiles').change(function() {
8 if($(this).val() != -1){
9 location.href="/abscontrol/view/" + $(this).val();
10 }
11 });
12
13 $('#lnkSave').click(function() {
14 $('#frmPattern').submit();
15 });
16
17 $('#lnkCancel').click(function() {
18 if ($("#pattern_id").val() == 0){
19 location.href="/abscontrol/edit/" + $("#profile_id").val();
20 }else{
21 location.href="/abscontrol/" + $("#profile_id").val() + "/view/" + $("#pattern_id").val()
22 }
23
24 });
25 }); No newline at end of file
@@ -0,0 +1,12
1 /**
2 * @author Jose Antonio Sal y Rosas Celi
3 * @contact: jose.salyrosas@jro.igp.gob.pe, arturo.jasyrc@gmail.com
4 */
5
6 $(document).on('ready',function(){
7 $('#listProfiles').change(function() {
8 if($(this).val() != -1){
9 location.href="/abscontrol/view/" + $(this).val();
10 }
11 });
12 }); No newline at end of file
@@ -0,0 +1,65
1 {% extends "abscontrol/edit.html" %}
2
3 {% block mnuPattern %}
4 <div class="divMenu" id="divMnuPattern">
5 <nav class="MnuHorizontal">
6 <ul class="mnu" id="mnuPattern">
7 <li><a href="#" id="lnkSave">Save</a></li>
8 <li><a href="#" id="lnkCancel">Cancel</a></li>
9 </ul>
10 </nav>
11 </div>
12 <div class="cleardivs"></div>
13 {% endblock %}
14 {% block pattern %}
15 <div id="infoPattern">
16 <form action="/abscontrol/{{ objProfile.id }}/save/" id="frmPattern" method="post">
17 <div id="antennaUp">
18 <fieldset class="flsAntenna">
19 <legend>UP</legend>
20 <div class="divAntenna">
21 <label for="lblAntenna">Antenna</label>
22 <textarea name="txtAntennaUp" class="txtAntenna" cols="38" rows="8">{{ txtAntenna }}</textarea>
23 </div>
24 <div class="divTx">
25 <label for="lblTx">Tx</label>
26 <textarea name="txtTxUp" class="txtTR" cols="20" rows="8">{{ txtTxUp }}</textarea>
27 </div>
28 <div class="divTx">
29 <label for="lblRx">Rx</label>
30 <textarea name="txtRxUp" class="txtTR" cols="20" rows="8">{{ txtRxUp }}</textarea>
31 </div>
32 <div class="cleardivs"></div>
33 <div class="divUes">
34 <label for="lblUes">Ues:</label>
35 <input type="text" name="txtUesUp" value="{{ txtUes }}" />
36 </div>
37 </fieldset>
38 </div>
39 <div id="antennaDown">
40 <fieldset class="flsAntenna">
41 <legend>DOWN</legend>
42 <div class="divAntenna">
43 <label for="lblAntenna">Antenna</label>
44 <textarea name="txtAntennaDown" class="txtAntenna" cols="38" rows="8">{{ txtAntenna }}</textarea>
45 </div>
46 <div class="divTx">
47 <label for="lblTx">Tx</label>
48 <textarea name="txtTxDown" class="txtTR" cols="20" rows="8">{{ txtTxDown }}</textarea>
49 </div>
50 <div class="divTx">
51 <label for="lblRx">Rx</label>
52 <textarea name="txtRxDown" class="txtTR" cols="20" rows="8">{{ txtRxDown }}</textarea>
53 </div>
54 <div class="cleardivs"></div>
55 <div class="divUes">
56 <label for="lblUes">Ues:</label>
57 <input type="text" name="txtUesDown" value="{{ txtUes }}" />
58 </div>
59 </fieldset>
60 </div>
61 <input type="hidden" name="pattern_id" id="pattern_id" value="0" />
62 <input type="hidden" name="profile_id" id="profile_id" value="{{ objProfile.id }}" />
63 </form>
64 </div>
65 {% endblock %}
@@ -0,0 +1,93
1 {% extends "abscontrol/index.html" %}
2 {% block title %}ABS CONTROL:::PROFILE:::{{ objProfile.name }}{% endblock %}
3 {% block scripting %}
4 <script src="/static/static/js/patterns.js"></script>
5 {% endblock %}
6 {% block maincolumn%}
7 <div id="maincolumn">
8 <div id="divProfile">
9 <label for="lblName">Profile:</label>
10 <label for="lblProfile">{{ objProfile.name }}</label>
11 </div>
12 <div id="divPattern">
13 {% block mnuPattern %}
14 <div class="divMenu" id="divMnuPattern">
15 <nav class="MnuHorizontal">
16 <ul class="mnu" id="mnuPattern">
17 <li><a href="/abscontrol/{{ objProfile.id }}/add">Add</a></li>
18 <li><a href="/abscontrol/{{ objProfile.id }}/edit/{{ patternChoosen.id }}">Edit</a></li>
19 {% if lsPatterns|length > 1 %}
20 <li><a href="/abscontrol/{{ objProfile.id }}/delete/{{ patternChoosen.id }}">Delete</a></li>
21 {% endif %}
22 <li><a href="#">Apply</a></li>
23 </ul>
24 </nav>
25 </div>
26 <div class="cleardivs"></div>
27 {% endblock %}
28 {% block pattern %}
29 <div id="infoPattern">
30 {% if patternChoosen %}
31 <div id="navPatterns">
32 <nav class="MnuHorizontal">
33 <ul class="mnu" id="navPatternList">
34 {% for element in lsPatterns %}
35 {% if patternChoosen.id == element.id %}
36 <li><a href="/abscontrol/{{ objProfile.id }}/view/{{ element.id }}" class="lnkPatternSelected">{{ element.value }}</a></li>
37 {% else %}
38 <li><a href="/abscontrol/{{ objProfile.id }}/view/{{ element.id }}" class="lnkPattern">{{ element.value }}</a></li>
39 {% endif %}
40 {% endfor %}
41 </ul>
42 </nav>
43 </div>
44 {% endif %}
45 <div id="antennaUp">
46 <fieldset class="flsAntenna">
47 <legend>UP</legend>
48 <div class="divAntenna">
49 <label for="lblAntenna">Antenna</label>
50 <p>{{ antennaUp.value }}</p>
51 </div>
52 <div class="divTx">
53 <label for="lblTx">Tx</label>
54 <p>{{ antennaUp.tx }}</p>
55 </div>
56 <div class="divTx">
57 <label for="lblRx">Rx</label>
58 <p>{{ antennaUp.rx }}</p>
59 </div>
60 <div class="cleardivs"></div>
61 <div class="divUes">
62 <label for="lblUes">Ues:</label>
63 <label for="lblAntennaUpUes">{{ antennaUp.ues }}</label>
64 </div>
65 </fieldset>
66 </div>
67 <div id="antennaDown">
68 <fieldset class="flsAntenna">
69 <legend>DOWN</legend>
70 <div class="divAntenna">
71 <label for="lblAntenna">Antenna</label>
72 <p>{{ antennaDown.value }}</textarea>
73 </div>
74 <div class="divTx">
75 <label for="lblTx">Tx</label>
76 <p>{{ antennaDown.tx }}</p>
77 </div>
78 <div class="divTx">
79 <label for="lblRx">Rx</label>
80 <p>{{ antennaDown.rx }}</p>
81 </div>
82 <div class="cleardivs"></div>
83 <div class="divUes">
84 <label for="lblUes">Ues:</label>
85 <label for="lblAntennaDownUes">{{ antennaDown.ues }}</label>
86 </div>
87 </fieldset>
88 </div>
89 </div>
90 {% endblock %}
91 </div>
92 </div>
93 {% endblock %}
@@ -0,0 +1,69
1 {% extends "abscontrol/edit.html" %}
2
3 {% block mnuPattern %}
4 <div class="divMenu" id="divMnuPattern">
5 <nav class="MnuHorizontal">
6 <ul class="mnu" id="mnuPattern">
7 <li><a href="#" id="lnkSave">Save</a></li>
8 <li><a href="#" id="lnkCancel">Cancel</a></li>
9 </ul>
10 </nav>
11 </div>
12 <div class="cleardivs"></div>
13 {% endblock %}
14 {% block pattern %}
15 <div id="infoPattern">
16 {% if patternChoosen %}
17 <div id="navPatterns">
18 <label for="lblValue">Pattern:</label>
19 <label for="lblPatternValue">{{ patternChoosen.value }}</label>
20 </div>
21 {% endif %}
22 <div id="antennaUp">
23 <fieldset class="flsAntenna">
24 <legend>UP</legend>
25 <div class="divAntenna">
26 <label for="lblAntenna">Antenna</label>
27 <textarea name="txtAntennaUp" class="txtAntenna" cols="38" rows="8">{{ antennaUp.value }}</textarea>
28 </div>
29 <div class="divTx">
30 <label for="lblTx">Tx</label>
31 <textarea name="txtTxUp" class="txtTR" cols="20" rows="8">{{ antennaUp.tx }}</textarea>
32 </div>
33 <div class="divTx">
34 <label for="lblRx">Rx</label>
35 <textarea name="txtRxUp" class="txtTR" cols="20" rows="8">{{ antennaUp.rx }}</textarea>
36 </div>
37 <div class="cleardivs"></div>
38 <div class="divUes">
39 <label for="lblUes">Ues:</label>
40 <input type="text" name="txtUesUp" value="{{ antennaUp.ues }}" />
41 </div>
42 </fieldset>
43 </div>
44 <div id="antennaDown">
45 <fieldset class="flsAntenna">
46 <legend>DOWN</legend>
47 <div class="divAntenna">
48 <label for="lblAntenna">Antenna</label>
49 <textarea name="txtAntennaDown" class="txtAntenna" cols="38" rows="8">{{ antennaDown.value }}</textarea>
50 </div>
51 <div class="divTx">
52 <label for="lblTx">Tx</label>
53 <textarea name="txtTxDown" class="txtTR" cols="20" rows="8">{{ antennaDown.tx }}</textarea>
54 </div>
55 <div class="divTx">
56 <label for="lblRx">Rx</label>
57 <textarea name="txtRxDown" class="txtTR" cols="20" rows="8">{{ antennaDown.rx }}</textarea>
58 </div>
59 <div class="cleardivs"></div>
60 <div class="divUes">
61 <label for="lblUes">Ues:</label>
62 <input type="text" name="txtUesDown" value="{{ antennaDown.ues }}" />
63 </div>
64 </fieldset>
65 </div>
66 <input type="hidden" name="pattern_id" id="pattern_id" value="{{ patternChoosen.id }}" />
67 <input type="hidden" name="profile_id" id="profile_id" value="{{ objProfile.id }}" />
68 </div>
69 {% endblock %}
@@ -0,0 +1,80
1 {% extends "abscontrol/edit.html" %}
2
3 {% block mnuPattern %}
4 <div class="divMenu" id="divMnuPattern">
5 <nav class="MnuHorizontal">
6 <ul class="mnu" id="mnuPattern">
7 <li><a href="/abscontrol/{{ objProfile.id }}/edit/{{ patternChoosen.id }}">Edit</a></li>
8 {% if lsPatterns|length > 1 %}
9 <li><a href="/abscontrol/{{ objProfile.id }}/delete/{{ patternChoosen.id }}">Delete</a></li>
10 {% endif %}
11 <li><a href="#">Apply</a></li>
12 </ul>
13 </nav>
14 </div>
15 <div class="cleardivs"></div>
16 {% endblock %}
17 {% block pattern %}
18 <div id="infoPattern">
19 {% if patternChoosen %}
20 <div id="navPatterns">
21 <nav class="MnuHorizontal">
22 <ul class="mnu" id="navPatternList">
23 {% for element in lsPatterns %}
24 {% if patternChoosen.id == element.id %}
25 <li><a href="/abscontrol/{{ objProfile.id }}/view/{{ element.id }}" class="lnkPatternSelected">{{ element.value }}</a></li>
26 {% else %}
27 <li><a href="/abscontrol/{{ objProfile.id }}/view/{{ element.id }}" class="lnkPattern">{{ element.value }}</a></li>
28 {% endif %}
29 {% endfor %}
30 </ul>
31 </nav>
32 </div>
33 {% endif %}
34 <div id="antennaUp">
35 <fieldset class="flsAntenna">
36 <legend>UP</legend>
37 <div class="divAntenna">
38 <label for="lblAntenna">Antenna</label>
39 <p>{{ antennaUp.value }}</p>
40 </div>
41 <div class="divTx">
42 <label for="lblTx">Tx</label>
43 <p>{{ antennaUp.tx }}</p>
44 </div>
45 <div class="divTx">
46 <label for="lblRx">Rx</label>
47 <p>{{ antennaUp.rx }}</p>
48 </div>
49 <div class="cleardivs"></div>
50 <div class="divUes">
51 <label for="lblUes">Ues:</label>
52 <label for="lblAntennaUpUes">{{ antennaUp.ues }}</label>
53 </div>
54 </fieldset>
55 </div>
56 <div id="antennaDown">
57 <fieldset class="flsAntenna">
58 <legend>DOWN</legend>
59 <div class="divAntenna">
60 <label for="lblAntenna">Antenna</label>
61 <p>{{ antennaDown.value }}</p>
62 </div>
63 <div class="divTx">
64 <label for="lblTx">Tx</label>
65 <p>{{ antennaDown.tx }}</p>
66 </div>
67 <div class="divTx">
68 <label for="lblRx">Rx</label>
69 <p>{{ antennaDown.rx }}</p>
70 </div>
71 <div class="cleardivs"></div>
72 <div class="divUes">
73 <label for="lblUes">Ues:</label>
74 <label for="lblAntennaDownUes">{{ antennaDown.ues }}</label>
75 </div>
76 </fieldset>
77 </div>
78 <input type="hidden" name="profile_id" id="profile_id" value="{{ objProfile.id }}" />
79 </div>
80 {% endblock %}
@@ -1,11 +1,17
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'^(?P<profile_id>\d+)/$', 'detail'),
9 #url(r'^(?P<profile_id>\d+)/$', 'detail'),
10 url(r'^(?P<profile_id>\d+)/add/$', 'addPattern'),
11 url(r'^(?P<profile_id>\d+)/save/$', 'savePattern'),
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'),
14 url(r'^(?P<profile_id>\d+)/delete/(?P<pattern_id>\d+)/$', 'deletePattern'),
9 #url(r'^(?P<poll_id>\d+)/results/$', 'results'),
15 #url(r'^(?P<poll_id>\d+)/results/$', 'results'),
10 #url(r'^(?P<poll_id>\d+)/vote/$', 'vote'),
16 #url(r'^(?P<poll_id>\d+)/vote/$', 'vote'),
11 ) No newline at end of file
17 )
@@ -1,103 +1,211
1 from django.shortcuts import render_to_response, redirect
1 from django.shortcuts import render_to_response, redirect
2 from abscontrol.models import Profile
2 from abscontrol.models import Profile, Pattern
3
4 txtAntenna = "[[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]," \
5 "[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]," \
6 "[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 "[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]," \
9 "[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]," \
10 "[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]," \
11 "[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]]"
12
13 txtTxUp = "[[1,1,1,1,1,1,1,1]," \
14 "[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]," \
17 "[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]," \
20 "[1,1,1,1,1,1,1,1]]"
21
22 txtTxDown = "[[1,1,1,1,0,0,0,0]," \
23 "[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]," \
26 "[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]," \
29 "[0,0,0,0,1,1,1,1]]"
30
31 txtRxUp = "[[0,0,0,0,1,1,1,1]," \
32 "[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]," \
35 "[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]," \
38 "[1,1,1,1,1,1,1,1]]"
39
40 txtRxDown = "[[1,1,1,1,1,1,1,1]," \
41 "[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]," \
44 "[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]," \
47 "[1,1,1,1,1,1,1,1]]"
48
49 txtUes = "[0.533333,0.00000,1.06667,0.00000]"
3
50
4 def index(request):
51 def index(request):
5 #latest_poll_list = profileAntenna.objects.all().order_by('-pub_date')[:5]
52 #latest_poll_list = profileAntenna.objects.all().order_by('-pub_date')[:5]
6 profile_list = Profile.objects.all()
53 profile_list = Profile.objects.all()
7 return render_to_response('abscontrol/index.html', {'profile_list': profile_list})
54 return render_to_response('abscontrol/index.html', {'profile_list': profile_list})
8
55
9 def new(request):
56 def new(request):
10 profile_list = Profile.objects.all()
57 profile_list = Profile.objects.all()
11 txtAntenna = "[[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]," \
12 "[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]," \
13 "[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]," \
14 "[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]," \
15 "[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]," \
16 "[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]," \
18 "[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]]"
19 txtTxUp = "[[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]," \
22 "[1,1,1,1,1,1,1,1]," \
23 "[1,1,1,1,1,1,1,1]," \
24 "[1,1,1,1,1,1,1,1]," \
25 "[1,1,1,1,1,1,1,1]," \
26 "[1,1,1,1,1,1,1,1]]"
27 txtTxDown = "[[1,1,1,1,0,0,0,0]," \
28 "[1,1,1,1,0,0,0,0]," \
29 "[1,1,1,1,0,0,0,0]," \
30 "[1,1,1,1,0,0,0,0]," \
31 "[0,0,0,0,1,1,1,1]," \
32 "[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]]"
35 txtRxUp = "[[0,0,0,0,1,1,1,1]," \
36 "[0,0,0,0,1,1,1,1]," \
37 "[0,0,0,0,1,1,1,1]," \
38 "[0,0,0,0,1,1,1,1]," \
39 "[1,1,1,1,1,1,1,1]," \
40 "[1,1,1,1,1,1,1,1]," \
41 "[1,1,1,1,1,1,1,1]," \
42 "[1,1,1,1,1,1,1,1]]"
43 txtRxDown = "[[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]," \
46 "[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]," \
49 "[1,1,1,1,1,1,1,1]," \
50 "[1,1,1,1,1,1,1,1]]"
51
52 txtUes = "[0.533333,0.00000,1.06667,0.00000]"
53
58
54 return render_to_response('abscontrol/new.html', {'profile_list': profile_list,
59 return render_to_response('abscontrol/new.html', {'profile_list': profile_list,
55 'txtAntenna' : txtAntenna,
60 'txtAntenna' : txtAntenna,
56 'txtUes' : txtUes, 'txtTxUp' : txtTxUp,
61 'txtUes' : txtUes, 'txtTxUp' : txtTxUp,
57 'txtTxDown' : txtTxDown, 'txtRxUp' : txtRxUp,
62 'txtTxDown' : txtTxDown, 'txtRxUp' : txtRxUp,
58 'txtRxDown' : txtRxDown,
63 'txtRxDown' : txtRxDown,
59 })
64 })
60
65
61 def save(request):
66 def save(request):
62
67
63 txtProfile = request.POST["txtProfile"]
68 txtProfile = request.POST["txtProfile"]
64
69
65 txtAntennaUp = request.POST["txtAntennaUp"]
70 txtAntennaUp = request.POST["txtAntennaUp"]
66 txtTxUp = request.POST["txtTxUp"]
71 txtTxUp = request.POST["txtTxUp"]
67 txtRxUp = request.POST["txtRxUp"]
72 txtRxUp = request.POST["txtRxUp"]
68 txtUesUp = request.POST["txtUesUp"]
73 txtUesUp = request.POST["txtUesUp"]
69
74
70 txtAntennaDown = request.POST["txtAntennaDown"]
75 txtAntennaDown = request.POST["txtAntennaDown"]
71 txtTxDown = request.POST["txtTxDown"]
76 txtTxDown = request.POST["txtTxDown"]
72 txtRxDown = request.POST["txtRxDown"]
77 txtRxDown = request.POST["txtRxDown"]
73 txtUesDown = request.POST["txtUesDown"]
78 txtUesDown = request.POST["txtUesDown"]
74
79
75 newprofile = Profile(name=txtProfile)
80 newprofile = Profile(name=txtProfile)
76 newprofile.save()
81 newprofile.save()
77
82
78 newpattern = newprofile.pattern_set.create(value=1)
83 newpattern = newprofile.pattern_set.create(value=1)
79 newpattern.antennaup_set.create(value=txtAntennaUp,tx=txtTxUp,rx=txtRxUp,ues=txtUesUp)
84 newpattern.antennaup_set.create(value=txtAntennaUp,tx=txtTxUp,rx=txtRxUp,ues=txtUesUp)
80 newpattern.antennadown_set.create(value=txtAntennaDown,tx=txtTxDown,rx=txtRxDown,ues=txtUesDown)
85 newpattern.antennadown_set.create(value=txtAntennaDown,tx=txtTxDown,rx=txtRxDown,ues=txtUesDown)
81
86
82 newurl = '/abscontrol/view/%d' % newprofile.id
87 newurl = '/abscontrol/view/%d' % newprofile.id
83
88
84 return redirect(newurl)
89 return redirect(newurl)
85
90
86 def view(request, profile_id):
91 def view(request, profile_id):
92 nextPattern = 0
93
87 if request.method == 'GET' and 'pattern' in request.GET:
94 if request.method == 'GET' and 'pattern' in request.GET:
88 pattern_value = request.GET["pattern"]
95 pattern_value = request.GET["pattern"]
89 else:
96 else:
90 pattern_value = 1
97 pattern_value = 1
91
98
92 profile_list = Profile.objects.all()
99 profile_list = Profile.objects.all()
93 objProfile = Profile.objects.get(pk=profile_id)
100 objProfile = Profile.objects.get(pk=profile_id)
94
101
95 lsPatterns = objProfile.pattern_set.all()
102 lsPatterns = objProfile.pattern_set.all()
96 patternChoosen = objProfile.pattern_set.get(value=pattern_value)
103 patternChoosen = objProfile.pattern_set.get(value=pattern_value)
97 objAntennaUp = patternChoosen.antennaup_set.get()
104 objAntennaUp = patternChoosen.antennaup_set.get()
98 objAntennaDown = patternChoosen.antennadown_set.get()
105 objAntennaDown = patternChoosen.antennadown_set.get()
99
106
107 if len(lsPatterns) > 1:
108 if pattern_value == 1:
109 nextValuePattern = pattern_value + 1
110 nextPattern = objProfile.pattern_set.get(value=nextValuePattern)
111
112
100 return render_to_response('abscontrol/view.html', {'objProfile': objProfile, 'profile_list': profile_list,
113 return render_to_response('abscontrol/view.html', {'objProfile': objProfile, 'profile_list': profile_list,
101 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
114 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
102 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
115 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
116 'nextPattern' : nextPattern,
103 })
117 })
118
119 def edit(request, profile_id):
120 if request.method == 'GET' and 'pattern' in request.GET:
121 pattern_value = request.GET["pattern"]
122 else:
123 pattern_value = 1
124
125 profile_list = Profile.objects.all()
126 objProfile = Profile.objects.get(pk=profile_id)
127
128 lsPatterns = objProfile.pattern_set.all()
129 patternChoosen = objProfile.pattern_set.get(value=pattern_value)
130 objAntennaUp = patternChoosen.antennaup_set.get()
131 objAntennaDown = patternChoosen.antennadown_set.get()
132
133 return render_to_response('abscontrol/edit.html', {'objProfile': objProfile, 'profile_list': profile_list,
134 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
135 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
136 })
137
138 def addPattern(request, profile_id):
139 profile_list = Profile.objects.all()
140 objProfile = Profile.objects.get(pk=profile_id)
141
142 return render_to_response('abscontrol/addPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
143 'txtAntenna' : txtAntenna, 'txtUes' : txtUes,
144 'txtTxUp' : txtTxUp, 'txtTxDown' : txtTxDown,
145 'txtRxUp' : txtRxUp, 'txtRxDown' : txtRxDown,
146 })
147
148 def editPattern(request, profile_id, pattern_id):
149 profile_list = Profile.objects.all()
150 objProfile = Profile.objects.get(pk=profile_id)
151 lsPatterns = objProfile.pattern_set.all()
152 patternChoosen = Pattern.objects.get(pk=pattern_id)
153 objAntennaUp = patternChoosen.antennaup_set.get()
154 objAntennaDown = patternChoosen.antennadown_set.get()
155
156 return render_to_response('abscontrol/editPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
157 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
158 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
159 })
160
161 def savePattern(request, profile_id):
162 maxValuePattern = 0
163 txtAntennaUp = request.POST["txtAntennaUp"]
164 txtTxUp = request.POST["txtTxUp"]
165 txtRxUp = request.POST["txtRxUp"]
166 txtUesUp = request.POST["txtUesUp"]
167
168 txtAntennaDown = request.POST["txtAntennaDown"]
169 txtTxDown = request.POST["txtTxDown"]
170 txtRxDown = request.POST["txtRxDown"]
171 txtUesDown = request.POST["txtUesDown"]
172
173 objProfile = Profile.objects.get(pk=profile_id)
174 lsPatterns = objProfile.pattern_set.all()
175 for element in lsPatterns:
176 if element.value > maxValuePattern:
177 maxPattern = element.value
178
179 if maxPattern < 10 :
180 newValuePattern = maxPattern + 1
181 newpattern = objProfile.pattern_set.create(value=newValuePattern)
182 newpattern.antennaup_set.create(value=txtAntennaUp,tx=txtTxUp,rx=txtRxUp,ues=txtUesUp)
183 newpattern.antennadown_set.create(value=txtAntennaDown,tx=txtTxDown,rx=txtRxDown,ues=txtUesDown)
184
185 newurl = '/abscontrol/%d/view/%d' % (int(profile_id), newpattern.id)
186 else:
187 newurl = '/abscontrol/edit/%d' % (int(profile_id))
188
189 return redirect(newurl)
190
191 def viewPattern(request, profile_id, pattern_id):
192
193 profile_list = Profile.objects.all()
194 objProfile = Profile.objects.get(pk=profile_id)
195
196 patternChoosen = Pattern.objects.get(pk=pattern_id)
197
198 objAntennaUp = patternChoosen.antennaup_set.get()
199 objAntennaDown = patternChoosen.antennadown_set.get()
200
201 lsPatterns = objProfile.pattern_set.all()
202
203 return render_to_response('abscontrol/viewPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
204 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
205 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
206 })
207
208 def deletePattern(request, profile_id, pattern_id):
209 newurl = '/abscontrol/edit/%d' % int(profile_id)
210
211 return redirect(newurl)
@@ -1,103 +1,120
1 @font-face {
1 @font-face {
2 font-family: 'Open Sans';
2 font-family: 'Open Sans';
3 font-style: normal;
3 font-style: normal;
4 font-weight: 300;
4 font-weight: 300;
5 src: local('Open Sans Light'), local('OpenSans-Light'), url(http://themes.googleusercontent.com/static/fonts/opensans/v6/DXI1ORHCpsQm3Vp6mXoaTXhCUOGz7vYGh680lGh-uXM.woff) format('woff');
5 src: local('Open Sans Light'), local('OpenSans-Light'), url(http://themes.googleusercontent.com/static/fonts/opensans/v6/DXI1ORHCpsQm3Vp6mXoaTXhCUOGz7vYGh680lGh-uXM.woff) format('woff');
6 }
6 }
7 @font-face {
7 @font-face {
8 font-family: 'Open Sans';
8 font-family: 'Open Sans';
9 font-style: normal;
9 font-style: normal;
10 font-weight: 400;
10 font-weight: 400;
11 src: local('Open Sans'), local('OpenSans'), url(http://themes.googleusercontent.com/static/fonts/opensans/v6/cJZKeOuBrn4kERxqtaUH3T8E0i7KZn-EPnyo3HZu7kw.woff) format('woff');
11 src: local('Open Sans'), local('OpenSans'), url(http://themes.googleusercontent.com/static/fonts/opensans/v6/cJZKeOuBrn4kERxqtaUH3T8E0i7KZn-EPnyo3HZu7kw.woff) format('woff');
12 }
12 }
13 @font-face {
13 @font-face {
14 font-family: 'Open Sans';
14 font-family: 'Open Sans';
15 font-style: normal;
15 font-style: normal;
16 font-weight: 600;
16 font-weight: 600;
17 src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(http://themes.googleusercontent.com/static/fonts/opensans/v6/MTP_ySUJH_bn48VBG8sNSnhCUOGz7vYGh680lGh-uXM.woff) format('woff');
17 src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(http://themes.googleusercontent.com/static/fonts/opensans/v6/MTP_ySUJH_bn48VBG8sNSnhCUOGz7vYGh680lGh-uXM.woff) format('woff');
18 }
18 }
19 @font-face {
19 @font-face {
20 font-family: 'Open Sans';
20 font-family: 'Open Sans';
21 font-style: normal;
21 font-style: normal;
22 font-weight: 700;
22 font-weight: 700;
23 src: local('Open Sans Bold'), local('OpenSans-Bold'), url(http://themes.googleusercontent.com/static/fonts/opensans/v6/k3k702ZOKiLJc3WVjuplzHhCUOGz7vYGh680lGh-uXM.woff) format('woff');
23 src: local('Open Sans Bold'), local('OpenSans-Bold'), url(http://themes.googleusercontent.com/static/fonts/opensans/v6/k3k702ZOKiLJc3WVjuplzHhCUOGz7vYGh680lGh-uXM.woff) format('woff');
24 }
24 }
25 @font-face {
25 @font-face {
26 font-family: 'Open Sans';
26 font-family: 'Open Sans';
27 font-style: normal;
27 font-style: normal;
28 font-weight: 800;
28 font-weight: 800;
29 src: local('Open Sans Extrabold'), local('OpenSans-Extrabold'), url(http://themes.googleusercontent.com/static/fonts/opensans/v6/EInbV5DfGHOiMmvb1Xr-hnhCUOGz7vYGh680lGh-uXM.woff) format('woff');
29 src: local('Open Sans Extrabold'), local('OpenSans-Extrabold'), url(http://themes.googleusercontent.com/static/fonts/opensans/v6/EInbV5DfGHOiMmvb1Xr-hnhCUOGz7vYGh680lGh-uXM.woff) format('woff');
30 }
30 }
31 @font-face {
31 @font-face {
32 font-family: 'Open Sans';
32 font-family: 'Open Sans';
33 font-style: italic;
33 font-style: italic;
34 font-weight: 300;
34 font-weight: 300;
35 src: local('Open Sans Light Italic'), local('OpenSansLight-Italic'), url(http://themes.googleusercontent.com/static/fonts/opensans/v6/PRmiXeptR36kaC0GEAetxh_xHqYgAV9Bl_ZQbYUxnQU.woff) format('woff');
35 src: local('Open Sans Light Italic'), local('OpenSansLight-Italic'), url(http://themes.googleusercontent.com/static/fonts/opensans/v6/PRmiXeptR36kaC0GEAetxh_xHqYgAV9Bl_ZQbYUxnQU.woff) format('woff');
36 }
36 }
37 @font-face {
37 @font-face {
38 font-family: 'Open Sans';
38 font-family: 'Open Sans';
39 font-style: italic;
39 font-style: italic;
40 font-weight: 400;
40 font-weight: 400;
41 src: local('Open Sans Italic'), local('OpenSans-Italic'), url(http://themes.googleusercontent.com/static/fonts/opensans/v6/xjAJXh38I15wypJXxuGMBobN6UDyHWBl620a-IRfuBk.woff) format('woff');
41 src: local('Open Sans Italic'), local('OpenSans-Italic'), url(http://themes.googleusercontent.com/static/fonts/opensans/v6/xjAJXh38I15wypJXxuGMBobN6UDyHWBl620a-IRfuBk.woff) format('woff');
42 }
42 }
43 @font-face {
43 @font-face {
44 font-family: 'Open Sans';
44 font-family: 'Open Sans';
45 font-style: italic;
45 font-style: italic;
46 font-weight: 600;
46 font-weight: 600;
47 src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url(http://themes.googleusercontent.com/static/fonts/opensans/v6/PRmiXeptR36kaC0GEAetxn5HxGBcBvicCpTp6spHfNo.woff) format('woff');
47 src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url(http://themes.googleusercontent.com/static/fonts/opensans/v6/PRmiXeptR36kaC0GEAetxn5HxGBcBvicCpTp6spHfNo.woff) format('woff');
48 }
48 }
49 @font-face {
49 @font-face {
50 font-family: 'Open Sans';
50 font-family: 'Open Sans';
51 font-style: italic;
51 font-style: italic;
52 font-weight: 700;
52 font-weight: 700;
53 src: local('Open Sans Bold Italic'), local('OpenSans-BoldItalic'), url(http://themes.googleusercontent.com/static/fonts/opensans/v6/PRmiXeptR36kaC0GEAetxjqR_3kx9_hJXbbyU8S6IN0.woff) format('woff');
53 src: local('Open Sans Bold Italic'), local('OpenSans-BoldItalic'), url(http://themes.googleusercontent.com/static/fonts/opensans/v6/PRmiXeptR36kaC0GEAetxjqR_3kx9_hJXbbyU8S6IN0.woff) format('woff');
54 }
54 }
55 @font-face {
55 @font-face {
56 font-family: 'Open Sans';
56 font-family: 'Open Sans';
57 font-style: italic;
57 font-style: italic;
58 font-weight: 800;
58 font-weight: 800;
59 src: local('Open Sans Extrabold Italic'), local('OpenSans-ExtraboldItalic'), url(http://themes.googleusercontent.com/static/fonts/opensans/v6/PRmiXeptR36kaC0GEAetxkCDe67GEgBv_HnyvHTfdew.woff) format('woff');
59 src: local('Open Sans Extrabold Italic'), local('OpenSans-ExtraboldItalic'), url(http://themes.googleusercontent.com/static/fonts/opensans/v6/PRmiXeptR36kaC0GEAetxkCDe67GEgBv_HnyvHTfdew.woff) format('woff');
60 }
60 }
61
61
62 body {font-size: 11px; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif}
62 body {font-size: 11px; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif}
63 article, aside, figure, footer, header, hgroup, nav, section { display:block; }
63 article, aside, figure, footer, header, hgroup, nav, section { display:block; }
64 header {border: 1px solid #fcc; font-size: 2em; height: 50px; text-align: center; line-height: 50px}
64 header {border: 1px solid #fcc; font-size: 2em; height: 50px; text-align: center; line-height: 50px}
65 #schema {margin: 0 auto; width: 980px; border: 1px solid #f00; padding: 10px 10px 10px 10px}
65 #schema {margin: 0 auto; width: 980px; border: 1px solid #f00; padding: 10px 10px 10px 10px}
66 #content {border: 1px solid #1cc; margin-top: 5px; margin-bottom: 5px}
66 #content {border: 1px solid #1cc; margin-top: 5px; margin-bottom: 5px}
67 #content #leftcolumn {float: left;border: 1px solid #c55; width: 150px; font-family: Monaco;}
67 #content #leftcolumn {float: left;border: 1px solid #c55; width: 150px; font-family: Monaco;}
68 #content #maincolumn {float: left; border: 1px solid #000; width: 800px; padding-left: 20px;}
68 #content #maincolumn {float: left; border: 1px solid #000; width: 800px; padding-left: 20px;}
69 footer {border: 1px solid #200; font-size: 0.9em; height: 30px; text-align: center; line-height: 20px}
69 footer {border: 1px solid #200; font-size: 0.9em; height: 30px; text-align: center; line-height: 20px}
70
70
71 .cleardivs {clear: both; border: 1px solid #400; height: 0px}
71 .cleardivs {clear: both; border: 0px solid #400; height: 0px}
72
72 /****************************************************************************************/
73 /****** ESTILOS GENERALES *****************/
74 /****************************************************************************************/
75 .mnu{ height: 22px; border: 1px solid #c55 !important;}
76 .mnu li{ display:inline;}
77 /*.MnuHorizontal{ display: -webkit-box; -webkit-box-orient:horizontal;}*/
78 /*.MnuHorizontal a{ display:block; padding:10px; -webkit-box-flex:1; text-align:center; }*/
73
79
74 /****************************************************************************************/
80 /****************************************************************************************/
75 /****** MENU DE NAVEGACION DE PERFILES **********************************/
81 /****** MENU DE NAVEGACION DE PERFILES **********************************/
76 /****************************************************************************************/
82 /****************************************************************************************/
77 #content #infoProfiles {border: 1px solid #d00; width: 140px; margin: 0px; padding-top: 2px; padding-bottom: 2px}
83 #content #infoProfiles {border: 1px solid #d00; width: 140px; margin: 0px; padding-top: 2px; padding-bottom: 2px}
78 .lblInfo {padding-left: 12px; line-height: 20px;}
84 .lblInfo {padding-left: 12px; line-height: 20px;}
79 #infoProfiles select {padding-left: 12px; line-height: 20px;margin-left: 12px}
85 #infoProfiles select {padding-left: 12px; line-height: 20px;margin-left: 12px}
80 #content nav {border: 1px solid #c55; width: 140px; margin: 0px; font-family: Monaco; font-size: 1.2em;}
86 #content nav {border: 0px solid #c55 !important; margin: 0px; font-family: Monaco; font-size: 1.2em;}
81 #content nav ul{list-style: none; list-style-type: none; margin: 15px 15px 15px 15px; padding-left: 20px; border: 0px solid #eee}
87 #content nav ul{list-style: none; list-style-type: none; margin: 0; padding-left: 20px; border: 0px solid #eee !important}
82 #content nav ul li{line-height: 20px}
88 #content nav ul li{line-height: 22px; }
83
89
84 /****************************************************************************************/
90 /****************************************************************************************/
85 /******** FORMULARIO DE PERFILES *************************************/
91 /******** FORMULARIO DE PERFILES *************************************/
86 /****************************************************************************************/
92 /****************************************************************************************/
87 #divProfile {border: 0px solid #dff; margin: 10px 0px; padding: 10px 10px; width: 500px}
93 #divProfile { border: 0px solid #dff; margin: 10px 0px; padding: 10px 10px; width: 500px }
88 .flsAntenna {margin: 10px 0px; width: 750px; padding: 10px 10px}
94 .flsAntenna { margin: 10px 0px; width: 750px; padding: 10px 10px }
89 #divPattern textarea,input[type=text],label {font-family: Monaco; font-size: inherit;}
95 #divPattern textarea,input[type=text],label{ font-family: Monaco; font-size: inherit; }
90
96
91 #divPattern textarea {resize: none; overflow: hidden}
97 #divPattern textarea {resize: none; overflow: hidden}
92
98
93 .divAntenna {float: left; margin: 10px; height: 160px; border: 1px solid #fcc !important; width: 260px}
99 .divAntenna { float: left; margin: 10px; height: 160px; border: 0px solid #fcc !important; width: 260px }
94 .divAntenna label {display: block}
100 .divAntenna label{ display: block }
95 .txtAntenna {max-width: 250px; max-height: 125px; width: 250px; height: 125px}
101 .txtAntenna { max-width: 250px; max-height: 125px; width: 250px; height: 125px }
102 .divAntenna p{ max-width: 250px; max-height: 125px; width: 250px; height: 125px }
96
103
97 .divTx {display: block; float: left; margin: 10px; height: 150px}
104 .divTx { display: block; float: left; margin: 10px; height: 150px }
98 .divTx label {display: block}
105 .divTx label{ display: block }
99 .divTx textarea {width: 135px; max-width: 135px; height: 125px; max-height: 125px; text-align: justify}
106 .divTx textarea{ width: 135px; max-width: 135px; height: 125px; max-height: 125px; text-align: justify }
107 .divTx p{ width: 135px; max-width: 135px; height: 125px; max-height: 125px; text-align: justify }
100
108
101 .divUes {display: block; margin: 10px}
109 .divUes { display: block; margin: 10px}
102 .divUes input[type=text] {width: 240px; max-width: 240px;}
110 .divUes input[type=text] { width: 240px; max-width: 240px;}
103
111
112 /****************************************************************************************/
113 /****** MENU DE NAVEGACION DE PATRONES **********************************/
114 /****************************************************************************************/
115 #divMnuPattern{ width: 350px; height: 25px; display: block; border: 1px solid #1cc !important; float: right }
116 #infoPattern{ display: block; border: 1px solid #1494f6 !important, margin: 5px 2px; }
117 #navPatterns{ margin: 5px auto; padding: 2px; border: 1px solid #d00 !important; width: 400px; height: 25px}
118 #navPatterns ul li{ width: 50px; border: 1px solid #1cc !important}
119 #navPatterns a{ width: 50px; border: 0px solid #1cc !important}
120 #navPatternList{ margin: 0px auto; border: 1px solid #ecc !important}
@@ -1,64 +1,60
1 {% extends "base.html" %}
1 {% extends "base.html" %}
2
2
3 {% block title %}ABS CONTROL:::::{% endblock %}
3 {% block title %}ABS CONTROL:::::{% endblock %}
4 {% block scripting %}
4 {% block scripting %}
5 {% if profile_list %}
5 {% if profile_list %}
6 <script type="text/javascript">
6 <script src="/static/static/js/profiles.js"></script>
7 $(document).on('ready',function(){
8 $('#listProfiles').change(function() {
9 if($(this).val() != -1){
10 location.href="/abscontrol/view/" + $(this).val();
11 }
12 });
13 });
14 </script>
15 {% endif %}
7 {% endif %}
16 {% endblock %}
8 {% endblock %}
17 {% block content %}
9 {% block content %}
18 <div id="content">
10 <div id="content">
19 {% block leftcolumn %}
11 {% block leftcolumn %}
20 <div id="leftcolumn">
12 <div id="leftcolumn">
21 <div id="lsProfiles">
13 <div id="lsProfiles">
22 <div id="infoProfiles">
14 <div id="infoProfiles">
23 <label for="lblProfile" class="lblInfo">Profiles:</label><br />
15 <label for="lblProfile" class="lblInfo">Profiles:</label><br />
24 {% if profile_list %}
16 {% if profile_list %}
25 <select name="lsProfiles" id="listProfiles">
17 <select name="lsProfiles" id="listProfiles">
26 <option value="-1">Choose ...</option>
18 <option value="-1">Choose ...</option>
27 {% for entry in profile_list %}
19 {% for entry in profile_list %}
28 {% if objProfile %}
20 {% if objProfile %}
29 {% if objProfile.id == entry.id %}
21 {% if objProfile.id == entry.id %}
30 <option value="{{ entry.id }}" selected>{{ entry.name }}</option>
22 <option value="{{ entry.id }}" selected>{{ entry.name }}</option>
31 {% else %}
23 {% else %}
32 <option value="{{ entry.id }}">{{ entry.name }}</option>
24 <option value="{{ entry.id }}">{{ entry.name }}</option>
33 {% endif %}
25 {% endif %}
34 {% else %}
26 {% else %}
35 <option value="{{ entry.id }}">{{ entry.name }}</option>
27 <option value="{{ entry.id }}">{{ entry.name }}</option>
36 {% endif %}
28 {% endif %}
37 {% endfor %}
29 {% endfor %}
38 </select>
30 </select>
39 {% else %}
31 {% else %}
40 <label for="lblMessage" class="lblInfo">No profiles.</label>
32 <label for="lblMessage" class="lblInfo">No profiles.</label>
41 {% endif %}
33 {% endif %}
42 </div>
34 </div>
43 </div>
35 </div>
44 {% block mnu_profile %}
36 {% block mnu_profile %}
45 <nav>
37 <nav>
46 <ul>
38 <ul>
47 <li><a href="/abscontrol/new">New</a></li>
39 <li><a href="/abscontrol/new">New</a></li>
40 {% if objProfile %}
41 <li><a href="/abscontrol/edit/{{ objProfile.id }}">Edit</a></li>
42 <li><a href="#">Save</a></li>
43 {% endif %}
48 <li><a href="#">Save as</a></li>
44 <li><a href="#">Save as</a></li>
49 <li><a href="#">Import</a></li>
45 <li><a href="#">Import</a></li>
50 <li><a href="#">Export</a></li>
46 <li><a href="#">Export</a></li>
51 <li><a href="#">Apply</a></li>
47 <li><a href="#">Apply</a></li>
52 </ul>
48 </ul>
53 </nav>
49 </nav>
54 {% endblock %}
50 {% endblock %}
55 </div>
51 </div>
56 {% endblock %}
52 {% endblock %}
57 {% block maincolumn %}
53 {% block maincolumn %}
58 <div id="maincolumn">
54 <div id="maincolumn">
59
55
60 </div>
56 </div>
61 {% endblock %}
57 {% endblock %}
62 <div class="cleardivs"></div>
58 <div class="cleardivs"></div>
63 </div>
59 </div>
64 {% endblock %} No newline at end of file
60 {% endblock %}
@@ -1,63 +1,74
1 {% extends "abscontrol/index.html" %}
1 {% extends "abscontrol/index.html" %}
2 {% block title %}ABS CONTROL:::PROFILE:::{{ objProfile.name }}{% endblock %}
2 {% block title %}ABS CONTROL:::PROFILE:::{{ objProfile.name }}{% endblock %}
3
3
4 {% block maincolumn%}
4 {% block maincolumn%}
5 <div id="maincolumn">
5 <div id="maincolumn">
6 <form action="/abscontrol/save/" method="post">
7 <div id="divProfile">
6 <div id="divProfile">
8 <label for="lblName">Profile:</label>
7 <label for="lblName">Profile:</label>
9 <label for="lblProfile">{{ objProfile.name }}</label>
8 <label for="lblProfile">{{ objProfile.name }}</label>
10 </div>
9 </div>
11 <div id="divPattern">
10 <div id="divPattern">
12 {% if patternChoosen %}
11 <div id="infoPattern">
13 <label for="lblValue">Pattern:</label>
12 {% if patternChoosen %}
14 <label for="lblPatternValue">{{ patternChoosen.value }}</label>
13 <div id="navPatterns">
15 {% endif %}
14 <nav class="MnuHorizontal">
16 <div id="antennaUp">
15 <ul class="mnu" id="navPatternList">
17 <fieldset class="flsAntenna">
16 {% for element in lsPatterns %}
18 <legend>UP</legend>
17 {% if patternChoosen.id == element.id %}
19 <div class="divAntenna">
18 <li><a href="/abscontrol/{{ objProfile.id }}/view/{{ element.id }}" class="lnkPatternSelected">{{ element.value }}</a></li>
20 <label for="lblAntenna">Antenna</label>
19 {% else %}
21 <textarea name="txtAntennaUp" class="txtAntenna" cols="38" rows="8">{{ antennaUp.value }}</textarea>
20 <li><a href="/abscontrol/{{ objProfile.id }}/view/{{ element.id }}" class="lnkPattern">{{ element.value }}</a></li>
22 </div>
21 {% endif %}
23 <div class="divTx">
22 {% endfor %}
24 <label for="lblTx">Tx</label>
23 </ul>
25 <textarea name="txtTxUp" class="txtTR" cols="20" rows="8">{{ antennaUp.tx }}</textarea>
24 </nav>
26 </div>
25 </div>
27 <div class="divTx">
26 {% endif %}
28 <label for="lblRx">Rx</label>
27 <div id="antennaUp">
29 <textarea name="txtRxUp" class="txtTR" cols="20" rows="8">{{ antennaUp.rx }}</textarea>
28 <fieldset class="flsAntenna">
30 </div>
29 <legend>UP</legend>
31 <div class="cleardivs"></div>
30 <div class="divAntenna">
32 <div class="divUes">
31 <label for="lblAntenna">Antenna</label>
33 <label for="lblUes">Ues:</label>
32 <p>{{ antennaUp.value }}</p>
34 <label for="lblAntennaUpUes">{{ antennaUp.ues }}</label>
33 </div>
35 </div>
34 <div class="divTx">
36 </fieldset>
35 <label for="lblTx">Tx</label>
37 </div>
36 <p>{{ antennaUp.tx }}</p>
38 <div id="antennaDown">
37 </div>
39 <fieldset class="flsAntenna">
38 <div class="divTx">
40 <legend>DOWN</legend>
39 <label for="lblRx">Rx</label>
41 <div class="divAntenna">
40 <p>{{ antennaUp.rx }}</p>
42 <label for="lblAntenna">Antenna</label>
41 </div>
43 <textarea name="txtAntennaDown" class="txtAntenna" cols="38" rows="8">{{ antennaDown.value }}</textarea>
42 <div class="cleardivs"></div>
44 </div>
43 <div class="divUes">
45 <div class="divTx">
44 <label for="lblUes">Ues:</label>
46 <label for="lblTx">Tx</label>
45 <label for="lblAntennaUpUes">{{ antennaUp.ues }}</label>
47 <textarea name="txtTxDown" class="txtTR" cols="20" rows="8">{{ antennaDown.tx }}</textarea>
46 </div>
48 </div>
47 </fieldset>
49 <div class="divTx">
48 </div>
50 <label for="lblRx">Rx</label>
49 <div id="antennaDown">
51 <textarea name="txtRxDown" class="txtTR" cols="20" rows="8">{{ antennaDown.rx }}</textarea>
50 <fieldset class="flsAntenna">
52 </div>
51 <legend>DOWN</legend>
53 <div class="cleardivs"></div>
52 <div class="divAntenna">
54 <div class="divUes">
53 <label for="lblAntenna">Antenna</label>
55 <label for="lblUes">Ues:</label>
54 <p>{{ antennaDown.value }}</p>
56 <label for="lblAntennaDownUes">{{ antennaDown.ues }}</label>
55 </div>
57 </div>
56 <div class="divTx">
58 </fieldset>
57 <label for="lblTx">Tx</label>
58 <p>{{ antennaDown.tx }}</p>
59 </div>
60 <div class="divTx">
61 <label for="lblRx">Rx</label>
62 <p>{{ antennaDown.rx }}</p>
63 </div>
64 <div class="cleardivs"></div>
65 <div class="divUes">
66 <label for="lblUes">Ues:</label>
67 <label for="lblAntennaDownUes">{{ antennaDown.ues }}</label>
68 </div>
69 </fieldset>
70 </div>
59 </div>
71 </div>
60 </div>
72 </div>
61 </form>
62 </div>
73 </div>
63 {% endblock %}
74 {% endblock %}
@@ -1,52 +1,52
1 {% load static %}
1 {% load static %}
2 <!DOCTYPE html>
2 <!DOCTYPE html>
3 <html lang="en">
3 <html lang="en">
4 <head>
4 <head>
5 <meta charset="utf-8" />
5 <meta charset="utf-8" />
6 {% comment %}
6 {% comment %}
7 <!-- Always force latest IE rendering engine (even in intranet) & Chrome Frame
7 <!-- Always force latest IE rendering engine (even in intranet) & Chrome Frame
8 Remove this if you use the .htaccess -->
8 Remove this if you use the .htaccess -->
9 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
9 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
10 {% endcomment %}
10 {% endcomment %}
11 <link rel="stylesheet" href="{% static 'static/css/style.css' %}" type="text/css" />
11 <link rel="stylesheet" href="{% static 'static/css/style.css' %}" type="text/css" />
12 <script src="{% static 'static/js/jquery-1.9.1.min.js' %}"></script>
12 <script src="{% static 'static/js/jquery-1.9.1.min.js' %}"></script>
13 {% block scripting %}{% endblock %}
13 <title>{% block title %}JRO WEB APPS::::{% endblock %}</title>
14 <title>{% block title %}JRO WEB APPS::::{% endblock %}</title>
14 <meta name="description" content="JRO WEB APPLICATIONS" />
15 <meta name="description" content="JRO WEB APPLICATIONS" />
15 <meta name="author" content="Jose Antonio Sal y Rosas Celi" />
16 <meta name="author" content="Jose Antonio Sal y Rosas Celi" />
16
17
17 {# <meta name="viewport" content="width=device-width; initial-scale=1.0" /> #}
18 {# <meta name="viewport" content="width=device-width; initial-scale=1.0" /> #}
18 {% comment %}
19 {% comment %}
19 <!-- Replace favicon.ico & apple-touch-icon.png in the root of your domain and delete these references -->
20 <!-- Replace favicon.ico & apple-touch-icon.png in the root of your domain and delete these references -->
20 <link rel="shortcut icon" href="/favicon.ico" />
21 <link rel="shortcut icon" href="/favicon.ico" />
21 <link rel="apple-touch-icon" href="/apple-touch-icon.png" />
22 <link rel="apple-touch-icon" href="/apple-touch-icon.png" />
22 {% endcomment %}
23 {% endcomment %}
23 {% block scripting %}{% endblock %}
24 </head>
24 </head>
25 <body>
25 <body>
26 <div id="schema">
26 <div id="schema">
27 <header>
27 <header>
28 {% block header %}
28 {% block header %}
29 <nav>
29 <nav>
30 <a href="/abscontrol">ABS</a> |
30 <a href="/abscontrol">ABS</a> |
31 <a href="#">CR</a> |
31 <a href="#">CR</a> |
32 <a href="#">DDS</a> |
32 <a href="#">DDS</a> |
33 <a href="#">JARS</a>
33 <a href="#">JARS</a>
34 </nav>
34 </nav>
35 {% endblock %}
35 {% endblock %}
36 </header>
36 </header>
37 {% block content %}
37 {% block content %}
38 <div id="content">
38 <div id="content">
39 <nav>
39 <nav>
40 <p><a href="/">Home</a></p>
40 <p><a href="/">Home</a></p>
41 <p><a href="/contact">Contact</a></p>
41 <p><a href="/contact">Contact</a></p>
42 </nav>
42 </nav>
43 </div>
43 </div>
44 {% endblock %}
44 {% endblock %}
45 <footer>
45 <footer>
46 {% block footer %}
46 {% block footer %}
47 <p>&copy; Copyright by Jicamarca Radio Observatory</p>
47 <p>&copy; Copyright by Jicamarca Radio Observatory</p>
48 {% endblock %}
48 {% endblock %}
49 </footer>
49 </footer>
50 </div>
50 </div>
51 </body>
51 </body>
52 </html>
52 </html>
General Comments 0
You need to be logged in to leave comments. Login now