| rev |
line source |
|
bsw/jbe@0
|
1 local suggestions_selector = param.get("suggestions_selector", "table")
|
|
bsw/jbe@0
|
2
|
|
bsw/jbe@0
|
3 ui.paginate{
|
|
bsw/jbe@0
|
4 selector = suggestions_selector,
|
|
bsw/jbe@0
|
5 content = function()
|
|
bsw/jbe@0
|
6 ui.list{
|
|
bsw/jbe@0
|
7 records = suggestions_selector:exec(),
|
|
bsw/jbe@0
|
8 columns = {
|
|
bsw/jbe@0
|
9 {
|
|
bsw/jbe@0
|
10 label = _"Name",
|
|
bsw/jbe@0
|
11 content = function(record)
|
|
bsw/jbe@0
|
12 ui.link{
|
|
bsw/jbe@0
|
13 text = record.name,
|
|
bsw/jbe@0
|
14 module = "suggestion",
|
|
bsw/jbe@0
|
15 view = "show",
|
|
bsw/jbe@0
|
16 id = record.id
|
|
bsw/jbe@0
|
17 }
|
|
bsw/jbe@0
|
18 end
|
|
bsw/jbe@0
|
19 },
|
|
bsw/jbe@0
|
20 {
|
|
bsw/jbe@0
|
21 label = _"Support",
|
|
bsw/jbe@0
|
22 content = function(record)
|
|
bsw/jbe@0
|
23 if record.minus2_unfulfilled_count then
|
|
bsw/jbe@0
|
24 local max_value = record.initiative.supporter_count
|
|
bsw/jbe@0
|
25 ui.bargraph{
|
|
bsw/jbe@0
|
26 max_value = max_value,
|
|
bsw/jbe@0
|
27 width = 50,
|
|
bsw/jbe@0
|
28 bars = {
|
|
bsw/jbe@0
|
29 { color = "#ddd", value = max_value - record.minus2_unfulfilled_count - record.minus1_unfulfilled_count - record.minus2_fulfilled_count - record.minus1_fulfilled_count },
|
|
bsw/jbe@0
|
30 { color = "#f88", value = record.minus1_unfulfilled_count + record.minus1_fulfilled_count },
|
|
bsw/jbe@0
|
31 { color = "#a00", value = record.minus2_unfulfilled_count + record.minus2_fulfilled_count },
|
|
bsw/jbe@0
|
32 { color = "#0a0", value = record.plus2_unfulfilled_count + record.plus2_fulfilled_count },
|
|
bsw/jbe@0
|
33 { color = "#8f8", value = record.plus1_unfulfilled_count + record.plus1_fulfilled_count },
|
|
bsw/jbe@0
|
34 { color = "#ddd", value = max_value - record.plus1_unfulfilled_count - record.plus2_unfulfilled_count - record.plus1_fulfilled_count - record.plus2_fulfilled_count },
|
|
bsw/jbe@0
|
35 }
|
|
bsw/jbe@0
|
36 }
|
|
bsw/jbe@0
|
37 end
|
|
bsw/jbe@0
|
38 end
|
|
bsw/jbe@0
|
39 },
|
|
bsw/jbe@0
|
40 {
|
|
bsw/jbe@0
|
41 content = function(record)
|
|
bsw/jbe@0
|
42 local degree
|
|
bsw/jbe@0
|
43 local opinion = Opinion:by_pk(app.session.member.id, record.id)
|
|
bsw/jbe@0
|
44 if opinion then
|
|
bsw/jbe@0
|
45 degree = opinion.degree
|
|
bsw/jbe@0
|
46 end
|
|
bsw/jbe@0
|
47 ui.link{
|
|
bsw/jbe@0
|
48 attr = { class = "action" .. (degree == -2 and " active_red2" or "") },
|
|
bsw/jbe@0
|
49 text = _"must not",
|
|
bsw/jbe@0
|
50 module = "opinion",
|
|
bsw/jbe@0
|
51 action = "update",
|
|
bsw/jbe@0
|
52 routing = { default = { mode = "redirect", module = request.get_module(), view = request.get_view(), id = param.get_id_cgi(), params = param.get_all_cgi() } },
|
|
bsw/jbe@0
|
53 params = {
|
|
bsw/jbe@0
|
54 suggestion_id = record.id,
|
|
bsw/jbe@0
|
55 degree = -2
|
|
bsw/jbe@0
|
56 }
|
|
bsw/jbe@0
|
57 }
|
|
bsw/jbe@0
|
58 ui.link{
|
|
bsw/jbe@0
|
59 attr = { class = "action" .. (degree == -1 and " active_red1" or "") },
|
|
bsw/jbe@0
|
60 text = _"should not",
|
|
bsw/jbe@0
|
61 module = "opinion",
|
|
bsw/jbe@0
|
62 action = "update",
|
|
bsw/jbe@0
|
63 routing = { default = { mode = "redirect", module = request.get_module(), view = request.get_view(), id = param.get_id_cgi(), params = param.get_all_cgi() } },
|
|
bsw/jbe@0
|
64 params = {
|
|
bsw/jbe@0
|
65 suggestion_id = record.id,
|
|
bsw/jbe@0
|
66 degree = -1
|
|
bsw/jbe@0
|
67 }
|
|
bsw/jbe@0
|
68 }
|
|
bsw/jbe@0
|
69 ui.link{
|
|
bsw/jbe@0
|
70 attr = { class = "action" .. (degree == nil and " active" or "") },
|
|
bsw/jbe@0
|
71 text = _"neutral",
|
|
bsw/jbe@0
|
72 module = "opinion",
|
|
bsw/jbe@0
|
73 action = "update",
|
|
bsw/jbe@0
|
74 routing = { default = { mode = "redirect", module = request.get_module(), view = request.get_view(), id = param.get_id_cgi(), params = param.get_all_cgi() } },
|
|
bsw/jbe@0
|
75 params = {
|
|
bsw/jbe@0
|
76 suggestion_id = record.id,
|
|
bsw/jbe@0
|
77 delete = true
|
|
bsw/jbe@0
|
78 }
|
|
bsw/jbe@0
|
79 }
|
|
bsw/jbe@0
|
80 ui.link{
|
|
bsw/jbe@0
|
81 attr = { class = "action" .. (degree == 1 and " active_green1" or "") },
|
|
bsw/jbe@0
|
82 text = _"should",
|
|
bsw/jbe@0
|
83 module = "opinion",
|
|
bsw/jbe@0
|
84 action = "update",
|
|
bsw/jbe@0
|
85 routing = { default = { mode = "redirect", module = request.get_module(), view = request.get_view(), id = param.get_id_cgi(), params = param.get_all_cgi() } },
|
|
bsw/jbe@0
|
86 params = {
|
|
bsw/jbe@0
|
87 suggestion_id = record.id,
|
|
bsw/jbe@0
|
88 degree = 1
|
|
bsw/jbe@0
|
89 }
|
|
bsw/jbe@0
|
90 }
|
|
bsw/jbe@0
|
91 ui.link{
|
|
bsw/jbe@0
|
92 attr = { class = "action" .. (degree == 2 and " active_green2" or "") },
|
|
bsw/jbe@0
|
93 text = _"must",
|
|
bsw/jbe@0
|
94 module = "opinion",
|
|
bsw/jbe@0
|
95 action = "update",
|
|
bsw/jbe@0
|
96 routing = { default = { mode = "redirect", module = request.get_module(), view = request.get_view(), id = param.get_id_cgi(), params = param.get_all_cgi() } },
|
|
bsw/jbe@0
|
97 params = {
|
|
bsw/jbe@0
|
98 suggestion_id = record.id,
|
|
bsw/jbe@0
|
99 degree = 2
|
|
bsw/jbe@0
|
100 }
|
|
bsw/jbe@0
|
101 }
|
|
bsw/jbe@0
|
102 end
|
|
bsw/jbe@0
|
103 },
|
|
bsw/jbe@0
|
104 {
|
|
bsw/jbe@0
|
105 label = _"Not fullfilled",
|
|
bsw/jbe@0
|
106 content = function(record)
|
|
bsw/jbe@0
|
107 if record.minus2_unfulfilled_count then
|
|
bsw/jbe@0
|
108 local max_value = record.initiative.supporter_count
|
|
bsw/jbe@0
|
109 ui.bargraph{
|
|
bsw/jbe@0
|
110 max_value = max_value,
|
|
bsw/jbe@0
|
111 width = 50,
|
|
bsw/jbe@0
|
112 bars = {
|
|
bsw/jbe@0
|
113 { color = "#ddd", value = max_value - record.minus2_unfulfilled_count - record.minus1_unfulfilled_count },
|
|
bsw/jbe@0
|
114 { color = "#f88", value = record.minus1_unfulfilled_count },
|
|
bsw/jbe@0
|
115 { color = "#a00", value = record.minus2_unfulfilled_count },
|
|
bsw/jbe@0
|
116 { color = "#0a0", value = record.plus2_unfulfilled_count },
|
|
bsw/jbe@0
|
117 { color = "#8f8", value = record.plus1_unfulfilled_count },
|
|
bsw/jbe@0
|
118 { color = "#ddd", value = max_value - record.plus1_unfulfilled_count - record.plus2_unfulfilled_count },
|
|
bsw/jbe@0
|
119 }
|
|
bsw/jbe@0
|
120 }
|
|
bsw/jbe@0
|
121 end
|
|
bsw/jbe@0
|
122 end
|
|
bsw/jbe@0
|
123 },
|
|
bsw/jbe@0
|
124 {
|
|
bsw/jbe@0
|
125 label = _"Fullfilled",
|
|
bsw/jbe@0
|
126 content = function(record)
|
|
bsw/jbe@0
|
127 if record.minus2_fulfilled_count then
|
|
bsw/jbe@0
|
128 local max_value = record.initiative.supporter_count
|
|
bsw/jbe@0
|
129 ui.bargraph{
|
|
bsw/jbe@0
|
130 max_value = max_value,
|
|
bsw/jbe@0
|
131 width = 50,
|
|
bsw/jbe@0
|
132 bars = {
|
|
bsw/jbe@0
|
133 { color = "#ddd", value = max_value - record.minus2_fulfilled_count - record.minus1_fulfilled_count },
|
|
bsw/jbe@0
|
134 { color = "#f88", value = record.minus1_fulfilled_count },
|
|
bsw/jbe@0
|
135 { color = "#a00", value = record.minus2_fulfilled_count },
|
|
bsw/jbe@0
|
136 { color = "#0a0", value = record.plus2_fulfilled_count },
|
|
bsw/jbe@0
|
137 { color = "#8f8", value = record.plus1_fulfilled_count },
|
|
bsw/jbe@0
|
138 { color = "#ddd", value = max_value - record.plus1_fulfilled_count - record.plus2_fulfilled_count },
|
|
bsw/jbe@0
|
139 }
|
|
bsw/jbe@0
|
140 }
|
|
bsw/jbe@0
|
141 end
|
|
bsw/jbe@0
|
142 end
|
|
bsw/jbe@0
|
143 },
|
|
bsw/jbe@0
|
144 {
|
|
bsw/jbe@0
|
145 content = function(record)
|
|
bsw/jbe@0
|
146 local degree
|
|
bsw/jbe@0
|
147 local opinion = Opinion:by_pk(app.session.member.id, record.id)
|
|
bsw/jbe@0
|
148 if opinion then
|
|
bsw/jbe@0
|
149 degree = opinion.degree
|
|
bsw/jbe@0
|
150 end
|
|
bsw/jbe@0
|
151 if opinion then
|
|
bsw/jbe@0
|
152 if not opinion.fulfilled then
|
|
bsw/jbe@0
|
153 ui.image{ static = "icons/16/cross.png" }
|
|
bsw/jbe@0
|
154 ui.link{
|
|
bsw/jbe@0
|
155 attr = { class = "action" },
|
|
bsw/jbe@0
|
156 text = _"set fulfilled",
|
|
bsw/jbe@0
|
157 module = "opinion",
|
|
bsw/jbe@0
|
158 action = "update",
|
|
bsw/jbe@0
|
159 routing = { default = { mode = "redirect", module = request.get_module(), view = request.get_view(), id = param.get_id_cgi(), params = param.get_all_cgi() } },
|
|
bsw/jbe@0
|
160 params = {
|
|
bsw/jbe@0
|
161 suggestion_id = record.id,
|
|
bsw/jbe@0
|
162 fulfilled = true
|
|
bsw/jbe@0
|
163 }
|
|
bsw/jbe@0
|
164 }
|
|
bsw/jbe@0
|
165 else
|
|
bsw/jbe@0
|
166 ui.image{ static = "icons/16/tick.png" }
|
|
bsw/jbe@0
|
167 ui.link{
|
|
bsw/jbe@0
|
168 attr = { class = "action" },
|
|
bsw/jbe@0
|
169 text = _"remove fulfilled",
|
|
bsw/jbe@0
|
170 module = "opinion",
|
|
bsw/jbe@0
|
171 action = "update",
|
|
bsw/jbe@0
|
172 routing = { default = { mode = "redirect", module = request.get_module(), view = request.get_view(), id = param.get_id_cgi(), params = param.get_all_cgi() } },
|
|
bsw/jbe@0
|
173 params = {
|
|
bsw/jbe@0
|
174 suggestion_id = record.id,
|
|
bsw/jbe@0
|
175 fulfilled = false
|
|
bsw/jbe@0
|
176 }
|
|
bsw/jbe@0
|
177 }
|
|
bsw/jbe@0
|
178 end
|
|
bsw/jbe@0
|
179 end
|
|
bsw/jbe@0
|
180 end
|
|
bsw/jbe@0
|
181 },
|
|
bsw/jbe@0
|
182 }
|
|
bsw/jbe@0
|
183 }
|
|
bsw/jbe@0
|
184 end
|
|
bsw/jbe@0
|
185 }
|