##// END OF EJS Templates
jars widgets...
Fiorella Quino -
r277:a950968f9d43
parent child
Show More
@@ -1,163 +1,164
1
1
2 import ast
2 import ast
3 import json
3 import json
4 from itertools import chain
4 from itertools import chain
5
5
6 from django import forms
6 from django import forms
7 from django.utils.safestring import mark_safe
7 from django.utils.safestring import mark_safe
8 from django.utils.html import conditional_escape
8 from django.utils.html import conditional_escape
9
9
10
10
11 class SpectralWidget(forms.widgets.TextInput):
11 class SpectralWidget(forms.widgets.TextInput):
12
12
13 def render(self, label, value, attrs=None):
13 def render(self, label, value, attrs=None):
14
14
15 disabled = 'disabled' if attrs.get('disabled', False) else ''
15 disabled = 'disabled' if attrs.get('disabled', False) else ''
16 name = attrs.get('name', label)
16 name = attrs.get('name', label)
17 #print value
17 if '[' in value:
18 if '[' in value:
18 if value[len(value)-1] == ",":
19 if value[len(value)-1] == ",":
19 value = ast.literal_eval(value)
20 value = ast.literal_eval(value)
20 else:
21 else:
21 value = value + ","
22 value = value + ","
22 value = ast.literal_eval(value)
23 value = ast.literal_eval(value)
23
24
24 codes = value
25 codes = value
25 if not isinstance(value, list):
26 if not isinstance(value, list):
26 text=''
27 text=''
27 #lista = []
28 #lista = []
28 #if len(value) > 1:
29 #if len(value) > 1:
29 for val in value:
30 for val in value:
30 text = text+str(val)+','
31 text = text+str(val)+','
31 #lista.append(val)
32 #lista.append(val)
32 codes=text
33 codes=text
33 else:
34 else:
34 codes=''
35 codes=''
35
36
36 html = '''<textarea rows="5" {0} class="form-control" id="id_{1}" name="{2}" disabled style="white-space:nowrap; overflow:scroll;">{3}</textarea>
37 html = '''<textarea rows="5" {0} class="form-control" id="id_{1}" name="{2}" disabled style="white-space:nowrap; overflow:scroll;">{3}</textarea>
37 <input type="text" class="col-md-1 col-no-padding" id="num1" value=0>
38 <input type="text" class="col-md-1 col-no-padding" id="num1" value=0>
38 <input type="text" class="col-md-1 col-no-padding" id="num2" value=0>
39 <input type="text" class="col-md-1 col-no-padding" id="num2" value=0>
39 <button type="button" class="button" id="add_spectral_button"> Add </button>
40 <button type="button" class="button" id="add_spectral_button"> Add </button>
40 <button type="button" class="button" id="delete_spectral_button"> Delete </button>
41 <button type="button" class="button" id="delete_spectral_button"> Delete </button>
41 <button type="button" class="button pull-right" id="cross_spectral_button"> Cross </button>
42 <button type="button" class="button pull-right" id="cross_spectral_button"> Cross </button>
42 <button type="button" class="button pull-right" id="self_spectral_button"> Self </button>
43 <button type="button" class="button pull-right" id="self_spectral_button"> Self </button>
43 <button type="button" class="button pull-right" id="all_spectral_button"> All </button>
44 <button type="button" class="button pull-right" id="all_spectral_button"> All </button>
44 '''.format(disabled, label, name, codes)
45 '''.format(disabled, label, name, codes)
45
46
46 script = '''
47 script = '''
47 <script type="text/javascript">
48 <script type="text/javascript">
48 $(document).ready(function () {{
49 $(document).ready(function () {{
49
50
50 var spectral_number1 = $("#num1").val();
51 var spectral_number1 = $("#num1").val();
51 var spectral_number2 = $("#num2").val();
52 var spectral_number2 = $("#num2").val();
52
53
53
54
54 $("#all_spectral_button").click(function(){{
55 $("#all_spectral_button").click(function(){{
55 var sequence1 = selfSpectral()
56 var sequence1 = selfSpectral()
56 var sequence2 = crossSpectral()
57 var sequence2 = crossSpectral()
57 $("#id_spectral").val(sequence1+sequence2)
58 $("#id_spectral").val(sequence1+sequence2)
58 updateSpectralNumber()
59 updateSpectralNumber()
59 }});
60 }});
60
61
61
62
62 $("#add_spectral_button").click(function(){{
63 $("#add_spectral_button").click(function(){{
63 var spectral_comb = $("#id_spectral").val();
64 var spectral_comb = $("#id_spectral").val();
64 var spectral_number1 = $("#num1").val();
65 var spectral_number1 = $("#num1").val();
65 var spectral_number2 = $("#num2").val();
66 var spectral_number2 = $("#num2").val();
66 var str = spectral_number1+", "+spectral_number2;
67 var str = spectral_number1+", "+spectral_number2;
67 //not to duplicate
68 //not to duplicate
68 var n = spectral_comb.search(str);
69 var n = spectral_comb.search(str);
69 if (n==-1){
70 if (n==-1){
70 $("#id_spectral").val(spectral_comb+"["+$("#num1").val()+", "+$("#num2").val()+"],")
71 $("#id_spectral").val(spectral_comb+"["+$("#num1").val()+", "+$("#num2").val()+"],")
71 }
72 }
72 updateSpectralNumber()
73 updateSpectralNumber()
73 }});
74 }});
74
75
75
76
76 $("#self_spectral_button").click(function(){{
77 $("#self_spectral_button").click(function(){{
77 var sequence = selfSpectral()
78 var sequence = selfSpectral()
78 $("#id_spectral").val(sequence)
79 $("#id_spectral").val(sequence)
79
80
80 updateSpectralNumber()
81 updateSpectralNumber()
81 }});
82 }});
82
83
83 $("#cross_spectral_button").click(function(){{
84 $("#cross_spectral_button").click(function(){{
84 var sequence = crossSpectral()
85 var sequence = crossSpectral()
85 $("#id_spectral").val(sequence)
86 $("#id_spectral").val(sequence)
86
87
87 updateSpectralNumber()
88 updateSpectralNumber()
88 }});
89 }});
89
90
90
91
91 function selfSpectral() {
92 function selfSpectral() {
92 var channels = $("#id_channels").val();
93 var channels = $("#id_channels").val();
93 var n = (channels.length)-1;
94 var n = (channels.length)-1;
94 var num = parseInt(channels[n]);
95 var num = parseInt(channels[n]);
95 sequence = ""
96 sequence = ""
96 for (i = 0; i < num; i++) {
97 for (i = 0; i < num; i++) {
97 sequence = sequence + "[" + i.toString() + ", " + i.toString() + "],"
98 sequence = sequence + "[" + i.toString() + ", " + i.toString() + "],"
98 }
99 }
99 return sequence
100 return sequence
100 }
101 }
101
102
102
103
103 function crossSpectral() {
104 function crossSpectral() {
104 var channels = $("#id_channels").val();
105 var channels = $("#id_channels").val();
105 var n = (channels.length)-1;
106 var n = (channels.length)-1;
106 var num = parseInt(channels[n]);
107 var num = parseInt(channels[n]);
107 sequence = ""
108 sequence = ""
108 for (i = 0; i < num; i++) {
109 for (i = 0; i < num; i++) {
109 for (j = i+1; j < num; j++) {
110 for (j = i+1; j < num; j++) {
110 sequence = sequence + "[" + i.toString() + ", " + j.toString() + "],"
111 sequence = sequence + "[" + i.toString() + ", " + j.toString() + "],"
111 }
112 }
112 }
113 }
113 return sequence
114 return sequence
114 }
115 }
115
116
116
117
117 function updateSpectralNumber(){
118 function updateSpectralNumber(){
118 var spectral_comb = $("#id_spectral").val();
119 var spectral_comb = $("#id_spectral").val();
119 var num = spectral_comb.length;
120 var num = spectral_comb.length;
120 var cont = 0
121 var cont = 0
121 for (i = 0; i < num; i++) {
122 for (i = 0; i < num; i++) {
122 if (spectral_comb[i] == "]"){
123 if (spectral_comb[i] == "]"){
123 cont = cont + 1
124 cont = cont + 1
124 }
125 }
125 }
126 }
126 $("#id_spectral_number").val(cont)
127 $("#id_spectral_number").val(cont)
127 }
128 }
128
129
129
130
130 $("#delete_spectral_button").click(function(){{
131 $("#delete_spectral_button").click(function(){{
131 var spectral_comb = $("#id_spectral").val();
132 var spectral_comb = $("#id_spectral").val();
132 var spectral_number1 = $("#num1").val();
133 var spectral_number1 = $("#num1").val();
133 var spectral_number2 = $("#num2").val();
134 var spectral_number2 = $("#num2").val();
134 var str = spectral_number1+", "+spectral_number2;
135 var str = spectral_number1+", "+spectral_number2;
135 var n = spectral_comb.search(str);
136 var n = spectral_comb.search(str);
136 if (n==-1){
137 if (n==-1){
137
138
138 }
139 }
139 else {
140 else {
140 n= spectral_comb.length;
141 n= spectral_comb.length;
141 if (n<8){
142 if (n<8){
142 var tuple = "["+$("#num1").val()+", "+$("#num2").val()+"],"
143 var tuple = "["+$("#num1").val()+", "+$("#num2").val()+"],"
143 var txt = spectral_comb.replace(tuple,'');
144 var txt = spectral_comb.replace(tuple,'');
144 }
145 }
145 else {
146 else {
146 var tuple = ",["+$("#num1").val()+", "+$("#num2").val()+"]"
147 var tuple = ",["+$("#num1").val()+", "+$("#num2").val()+"]"
147 var txt = spectral_comb.replace(tuple,'');
148 var txt = spectral_comb.replace(tuple,'');
148 }
149 }
149 $("#id_spectral").val(txt)
150 $("#id_spectral").val(txt)
150
151
151 var tuple = "["+$("#num1").val()+", "+$("#num2").val()+"],"
152 var tuple = "["+$("#num1").val()+", "+$("#num2").val()+"],"
152 var txt = spectral_comb.replace(tuple,'');
153 var txt = spectral_comb.replace(tuple,'');
153 $("#id_spectral").val(txt)
154 $("#id_spectral").val(txt)
154 }
155 }
155 updateSpectralNumber()
156 updateSpectralNumber()
156 }});
157 }});
157
158
158
159
159 }});
160 }});
160 </script>
161 </script>
161 '''
162 '''
162
163
163 return mark_safe(html+script)
164 return mark_safe(html+script)
General Comments 0
You need to be logged in to leave comments. Login now