liquid_feedback_frontend
annotate app/main/suggestion/_list.lua @ 24:81586ea68d57
Minor bugfixes
app/main/initiative/_list.lua:
Replaced single by optional object mode
locale/translations.de.lua:
Consistent translation
app/main/initiative/_show.lua:
Added missing case "not approved" in voting info box
app/main/initiative/_show_voting.lua:
Added link to initiative
app/main/initiative/_show_voting.lua:
Added missing argument for link
app/main/member/show_tab.lua:
Added outgoing argument to show outgoing delegations correctly
app/main/initiative/_list.lua:
Replaced single by optional object mode
locale/translations.de.lua:
Consistent translation
app/main/initiative/_show.lua:
Added missing case "not approved" in voting info box
app/main/initiative/_show_voting.lua:
Added link to initiative
app/main/initiative/_show_voting.lua:
Added missing argument for link
app/main/member/show_tab.lua:
Added outgoing argument to show outgoing delegations correctly
author | bsw |
---|---|
date | Sun Feb 21 14:09:11 2010 +0100 (2010-02-21) |
parents | 00d1004545f1 |
children | 0849be391140 |
rev | line source |
---|---|
bsw/jbe@4 | 1 |
bsw/jbe@4 | 2 local initiative = param.get("initiative", "table") |
bsw/jbe@0 | 3 local suggestions_selector = param.get("suggestions_selector", "table") |
bsw/jbe@19 | 4 local tab_id = param.get("tab_id") |
bsw/jbe@19 | 5 local show_name = param.get("show_name", atom.boolean) |
bsw/jbe@19 | 6 if show_name == nil then |
bsw/jbe@19 | 7 show_name = true |
bsw/jbe@19 | 8 end |
bsw/jbe@19 | 9 local show_filter = param.get("show_filter", atom.boolean) |
bsw/jbe@19 | 10 if show_filter == nil then |
bsw/jbe@19 | 11 show_filter = true |
bsw/jbe@19 | 12 end |
bsw/jbe@0 | 13 |
bsw/jbe@19 | 14 local partial = { |
bsw/jbe@19 | 15 routing = { |
bsw/jbe@19 | 16 default = { |
bsw/jbe@19 | 17 mode = "redirect", |
bsw/jbe@19 | 18 module = "initiative", |
bsw/jbe@19 | 19 view = "show_tab", |
bsw/jbe@19 | 20 params = { |
bsw/jbe@19 | 21 initiative_id = initiative.id, |
bsw/jbe@19 | 22 tab = "suggestions", |
bsw/jbe@19 | 23 tab_id = tab_id |
bsw/jbe@19 | 24 }, |
bsw/jbe@19 | 25 } |
bsw/jbe@19 | 26 } |
bsw/jbe@19 | 27 } |
bsw/jbe@19 | 28 |
bsw/jbe@19 | 29 local ui_filters = ui.filters |
bsw/jbe@19 | 30 if not show_filter then |
bsw/jbe@19 | 31 ui_filters = function(args) args.content() end |
bsw/jbe@19 | 32 end |
bsw/jbe@19 | 33 |
bsw/jbe@19 | 34 ui_filters{ |
bsw/jbe@19 | 35 label = _"Show filter", |
bsw/jbe@0 | 36 selector = suggestions_selector, |
bsw/jbe@19 | 37 { |
bsw/jbe@19 | 38 label = _"Order by", |
bsw/jbe@4 | 39 { |
bsw/jbe@19 | 40 name = "plus_unfulfilled", |
bsw/jbe@19 | 41 label = _"requested", |
bsw/jbe@19 | 42 selector_modifier = function(selector) selector:add_order_by("plus2_unfulfilled_count + plus1_unfulfilled_count DESC, id") end |
bsw/jbe@4 | 43 }, |
bsw/jbe@4 | 44 { |
bsw/jbe@4 | 45 name = "plus2", |
bsw/jbe@4 | 46 label = _"must", |
bsw/jbe@19 | 47 selector_modifier = function(selector) selector:add_order_by("plus2_unfulfilled_count + plus2_fulfilled_count DESC, id") end |
bsw/jbe@4 | 48 }, |
bsw/jbe@4 | 49 { |
bsw/jbe@4 | 50 name = "plus", |
bsw/jbe@4 | 51 label = _"must/should", |
bsw/jbe@19 | 52 selector_modifier = function(selector) selector:add_order_by("plus2_unfulfilled_count + plus1_unfulfilled_count + plus2_fulfilled_count + plus1_fulfilled_count DESC, id") end |
bsw/jbe@4 | 53 }, |
bsw/jbe@4 | 54 { |
bsw/jbe@4 | 55 name = "minus", |
bsw/jbe@4 | 56 label = _"must/should not", |
bsw/jbe@19 | 57 selector_modifier = function(selector) selector:add_order_by("minus2_unfulfilled_count + minus1_unfulfilled_count + minus2_fulfilled_count + minus1_fulfilled_count DESC, id") end |
bsw/jbe@4 | 58 }, |
bsw/jbe@4 | 59 { |
bsw/jbe@4 | 60 name = "minus2", |
bsw/jbe@4 | 61 label = _"must not", |
bsw/jbe@19 | 62 selector_modifier = function(selector) selector:add_order_by("minus2_unfulfilled_count + minus2_fulfilled_count DESC, id") end |
bsw/jbe@19 | 63 } |
bsw/jbe@4 | 64 }, |
bsw/jbe@0 | 65 content = function() |
bsw/jbe@4 | 66 ui.paginate{ |
bsw/jbe@4 | 67 selector = suggestions_selector, |
bsw/jbe@4 | 68 content = function() |
bsw/jbe@4 | 69 ui.list{ |
bsw/jbe@4 | 70 attr = { style = "table-layout: fixed;" }, |
bsw/jbe@4 | 71 records = suggestions_selector:exec(), |
bsw/jbe@4 | 72 columns = { |
bsw/jbe@4 | 73 { |
bsw/jbe@19 | 74 label = show_name and _"Suggestion" or nil, |
bsw/jbe@4 | 75 content = function(record) |
bsw/jbe@19 | 76 if show_name then |
bsw/jbe@19 | 77 ui.link{ |
bsw/jbe@19 | 78 text = record.name, |
bsw/jbe@19 | 79 module = "suggestion", |
bsw/jbe@19 | 80 view = "show", |
bsw/jbe@19 | 81 id = record.id |
bsw/jbe@19 | 82 } |
bsw/jbe@19 | 83 end |
bsw/jbe@4 | 84 end |
bsw/jbe@4 | 85 }, |
bsw/jbe@4 | 86 { |
bsw/jbe@4 | 87 label = _"Collective opinion", |
bsw/jbe@4 | 88 label_attr = { style = "width: 101px;" }, |
bsw/jbe@4 | 89 content = function(record) |
bsw/jbe@4 | 90 if record.minus2_unfulfilled_count then |
bsw/jbe@4 | 91 local max_value = record.initiative.issue.population |
bsw/jbe@4 | 92 ui.bargraph{ |
bsw/jbe@4 | 93 max_value = max_value, |
bsw/jbe@4 | 94 width = 50, |
bsw/jbe@4 | 95 bars = { |
bsw/jbe@4 | 96 { color = "#ddd", value = max_value - record.minus2_unfulfilled_count - record.minus1_unfulfilled_count - record.minus2_fulfilled_count - record.minus1_fulfilled_count }, |
bsw/jbe@4 | 97 { color = "#f88", value = record.minus1_unfulfilled_count + record.minus1_fulfilled_count }, |
bsw/jbe@4 | 98 { color = "#a00", value = record.minus2_unfulfilled_count + record.minus2_fulfilled_count }, |
bsw/jbe@4 | 99 { color = "#0a0", value = record.plus2_unfulfilled_count + record.plus2_fulfilled_count }, |
bsw/jbe@4 | 100 { color = "#8f8", value = record.plus1_unfulfilled_count + record.plus1_fulfilled_count }, |
bsw/jbe@4 | 101 { color = "#ddd", value = max_value - record.plus1_unfulfilled_count - record.plus2_unfulfilled_count - record.plus1_fulfilled_count - record.plus2_fulfilled_count }, |
bsw/jbe@4 | 102 } |
bsw/jbe@4 | 103 } |
bsw/jbe@4 | 104 end |
bsw/jbe@4 | 105 end |
bsw/jbe@4 | 106 }, |
bsw/jbe@4 | 107 { |
bsw/jbe@4 | 108 label = _"My opinion", |
bsw/jbe@4 | 109 content = function(record) |
bsw/jbe@4 | 110 local degree |
bsw/jbe@4 | 111 local opinion = Opinion:by_pk(app.session.member.id, record.id) |
bsw/jbe@4 | 112 if opinion then |
bsw/jbe@4 | 113 degree = opinion.degree |
bsw@3 | 114 end |
bsw/jbe@5 | 115 ui.container{ |
bsw/jbe@5 | 116 attr = { class = "suggestion_my_opinion" }, |
bsw/jbe@5 | 117 content = function() |
bsw/jbe@19 | 118 if initiative.issue.state == "voting" or initiative.issue.state == "closed" then |
bsw/jbe@19 | 119 ui.tag{ |
bsw/jbe@19 | 120 tag = "span", |
bsw/jbe@19 | 121 attr = { class = "action" .. (degree == -2 and " active_red2" or "") }, |
bsw/jbe@19 | 122 content = _"must not" |
bsw/jbe@19 | 123 } |
bsw/jbe@19 | 124 ui.tag{ |
bsw/jbe@19 | 125 tag = "span", |
bsw/jbe@19 | 126 attr = { class = "action" .. (degree == -1 and " active_red1" or "") }, |
bsw/jbe@19 | 127 content = _"should not" |
bsw/jbe@19 | 128 } |
bsw/jbe@19 | 129 ui.tag{ |
bsw/jbe@19 | 130 tag = "span", |
bsw/jbe@19 | 131 attr = { class = "action" .. (degree == nil and " active" or "") }, |
bsw/jbe@19 | 132 content = _"neutral" |
bsw/jbe@5 | 133 } |
bsw/jbe@19 | 134 ui.tag{ |
bsw/jbe@19 | 135 tag = "span", |
bsw/jbe@19 | 136 attr = { class = "action" .. (degree == 1 and " active_green1" or "") }, |
bsw/jbe@19 | 137 content = _"should" |
bsw/jbe@19 | 138 } |
bsw/jbe@19 | 139 ui.tag{ |
bsw/jbe@19 | 140 tag = "span", |
bsw/jbe@19 | 141 attr = { class = "action" .. (degree == 2 and " active_green2" or "") }, |
bsw/jbe@19 | 142 content = _"must" |
bsw/jbe@19 | 143 } |
bsw/jbe@19 | 144 else |
bsw/jbe@19 | 145 ui.link{ |
bsw/jbe@19 | 146 attr = { class = "action" .. (degree == -2 and " active_red2" or "") }, |
bsw/jbe@19 | 147 text = _"must not", |
bsw/jbe@19 | 148 module = "opinion", |
bsw/jbe@19 | 149 action = "update", |
bsw/jbe@19 | 150 routing = { default = { mode = "redirect", module = request.get_module(), view = request.get_view(), id = param.get_id_cgi(), params = param.get_all_cgi() } }, |
bsw/jbe@19 | 151 params = { |
bsw/jbe@19 | 152 suggestion_id = record.id, |
bsw/jbe@19 | 153 degree = -2 |
bsw/jbe@19 | 154 }, |
bsw/jbe@19 | 155 partial = partial |
bsw/jbe@5 | 156 } |
bsw/jbe@19 | 157 slot.put(" ") |
bsw/jbe@19 | 158 ui.link{ |
bsw/jbe@19 | 159 attr = { class = "action" .. (degree == -1 and " active_red1" or "") }, |
bsw/jbe@19 | 160 text = _"should not", |
bsw/jbe@19 | 161 module = "opinion", |
bsw/jbe@19 | 162 action = "update", |
bsw/jbe@19 | 163 routing = { default = { mode = "redirect", module = request.get_module(), view = request.get_view(), id = param.get_id_cgi(), params = param.get_all_cgi() } }, |
bsw/jbe@19 | 164 params = { |
bsw/jbe@19 | 165 suggestion_id = record.id, |
bsw/jbe@19 | 166 degree = -1 |
bsw/jbe@19 | 167 }, |
bsw/jbe@19 | 168 partial = partial |
bsw/jbe@19 | 169 } |
bsw/jbe@19 | 170 slot.put(" ") |
bsw/jbe@19 | 171 ui.link{ |
bsw/jbe@19 | 172 attr = { class = "action" .. (degree == nil and " active" or "") }, |
bsw/jbe@19 | 173 text = _"neutral", |
bsw/jbe@19 | 174 module = "opinion", |
bsw/jbe@19 | 175 action = "update", |
bsw/jbe@19 | 176 routing = { default = { mode = "redirect", module = request.get_module(), view = request.get_view(), id = param.get_id_cgi(), params = param.get_all_cgi() } }, |
bsw/jbe@19 | 177 params = { |
bsw/jbe@19 | 178 suggestion_id = record.id, |
bsw/jbe@19 | 179 delete = true |
bsw/jbe@19 | 180 }, |
bsw/jbe@19 | 181 partial = partial |
bsw/jbe@5 | 182 } |
bsw/jbe@19 | 183 slot.put(" ") |
bsw/jbe@19 | 184 ui.link{ |
bsw/jbe@19 | 185 attr = { class = "action" .. (degree == 1 and " active_green1" or "") }, |
bsw/jbe@19 | 186 text = _"should", |
bsw/jbe@19 | 187 module = "opinion", |
bsw/jbe@19 | 188 action = "update", |
bsw/jbe@19 | 189 routing = { default = { mode = "redirect", module = request.get_module(), view = request.get_view(), id = param.get_id_cgi(), params = param.get_all_cgi() } }, |
bsw/jbe@19 | 190 params = { |
bsw/jbe@19 | 191 suggestion_id = record.id, |
bsw/jbe@19 | 192 degree = 1 |
bsw/jbe@19 | 193 }, |
bsw/jbe@19 | 194 partial = partial |
bsw/jbe@5 | 195 } |
bsw/jbe@19 | 196 slot.put(" ") |
bsw/jbe@19 | 197 ui.link{ |
bsw/jbe@19 | 198 attr = { class = "action" .. (degree == 2 and " active_green2" or "") }, |
bsw/jbe@19 | 199 text = _"must", |
bsw/jbe@19 | 200 module = "opinion", |
bsw/jbe@19 | 201 action = "update", |
bsw/jbe@19 | 202 routing = { default = { mode = "redirect", module = request.get_module(), view = request.get_view(), id = param.get_id_cgi(), params = param.get_all_cgi() } }, |
bsw/jbe@19 | 203 params = { |
bsw/jbe@19 | 204 suggestion_id = record.id, |
bsw/jbe@19 | 205 degree = 2 |
bsw/jbe@19 | 206 }, |
bsw/jbe@19 | 207 partial = partial |
bsw/jbe@5 | 208 } |
bsw/jbe@19 | 209 end |
bsw/jbe@5 | 210 end |
bsw/jbe@0 | 211 } |
bsw/jbe@0 | 212 end |
bsw/jbe@4 | 213 }, |
bsw/jbe@4 | 214 { |
bsw/jbe@4 | 215 content = function(record) |
bsw/jbe@4 | 216 local opinion = Opinion:by_pk(app.session.member.id, record.id) |
bsw/jbe@4 | 217 if opinion and not opinion.fulfilled then |
bsw/jbe@4 | 218 ui.image{ static = "icons/16/cross.png" } |
bsw/jbe@4 | 219 end |
bsw/jbe@4 | 220 end |
bsw/jbe@4 | 221 }, |
bsw/jbe@4 | 222 { |
bsw/jbe@4 | 223 label = _"Suggestion currently not implemented", |
bsw/jbe@4 | 224 label_attr = { style = "width: 101px;" }, |
bsw/jbe@4 | 225 content = function(record) |
bsw/jbe@4 | 226 if record.minus2_unfulfilled_count then |
bsw/jbe@4 | 227 local max_value = record.initiative.issue.population |
bsw/jbe@4 | 228 ui.bargraph{ |
bsw/jbe@4 | 229 max_value = max_value, |
bsw/jbe@4 | 230 width = 50, |
bsw/jbe@4 | 231 bars = { |
bsw/jbe@4 | 232 { color = "#ddd", value = max_value - record.minus2_unfulfilled_count - record.minus1_unfulfilled_count }, |
bsw/jbe@4 | 233 { color = "#f88", value = record.minus1_unfulfilled_count }, |
bsw/jbe@4 | 234 { color = "#a00", value = record.minus2_unfulfilled_count }, |
bsw/jbe@4 | 235 { color = "#0a0", value = record.plus2_unfulfilled_count }, |
bsw/jbe@4 | 236 { color = "#8f8", value = record.plus1_unfulfilled_count }, |
bsw/jbe@4 | 237 { color = "#ddd", value = max_value - record.plus1_unfulfilled_count - record.plus2_unfulfilled_count }, |
bsw/jbe@4 | 238 } |
bsw/jbe@4 | 239 } |
bsw/jbe@4 | 240 end |
bsw/jbe@4 | 241 end |
bsw/jbe@4 | 242 }, |
bsw/jbe@4 | 243 { |
bsw/jbe@4 | 244 content = function(record) |
bsw/jbe@4 | 245 local opinion = Opinion:by_pk(app.session.member.id, record.id) |
bsw/jbe@4 | 246 if opinion and opinion.fulfilled then |
bsw/jbe@4 | 247 ui.image{ static = "icons/16/tick.png" } |
bsw/jbe@4 | 248 end |
bsw/jbe@4 | 249 end |
bsw/jbe@4 | 250 }, |
bsw/jbe@4 | 251 { |
bsw/jbe@4 | 252 label = _"Suggestion currently implemented", |
bsw/jbe@4 | 253 label_attr = { style = "width: 101px;" }, |
bsw/jbe@4 | 254 content = function(record) |
bsw/jbe@4 | 255 if record.minus2_fulfilled_count then |
bsw/jbe@4 | 256 local max_value = record.initiative.issue.population |
bsw/jbe@4 | 257 ui.bargraph{ |
bsw/jbe@4 | 258 max_value = max_value, |
bsw/jbe@4 | 259 width = 50, |
bsw/jbe@4 | 260 bars = { |
bsw/jbe@4 | 261 { color = "#ddd", value = max_value - record.minus2_fulfilled_count - record.minus1_fulfilled_count }, |
bsw/jbe@4 | 262 { color = "#f88", value = record.minus1_fulfilled_count }, |
bsw/jbe@4 | 263 { color = "#a00", value = record.minus2_fulfilled_count }, |
bsw/jbe@4 | 264 { color = "#0a0", value = record.plus2_fulfilled_count }, |
bsw/jbe@4 | 265 { color = "#8f8", value = record.plus1_fulfilled_count }, |
bsw/jbe@4 | 266 { color = "#ddd", value = max_value - record.plus1_fulfilled_count - record.plus2_fulfilled_count }, |
bsw/jbe@4 | 267 } |
bsw/jbe@4 | 268 } |
bsw/jbe@4 | 269 end |
bsw@3 | 270 end |
bsw/jbe@4 | 271 }, |
bsw/jbe@4 | 272 { |
bsw/jbe@4 | 273 label_attr = { style = "width: 200px;" }, |
bsw/jbe@4 | 274 content = function(record) |
bsw/jbe@4 | 275 local degree |
bsw/jbe@4 | 276 local opinion = Opinion:by_pk(app.session.member.id, record.id) |
bsw/jbe@4 | 277 if opinion then |
bsw/jbe@4 | 278 degree = opinion.degree |
bsw/jbe@4 | 279 end |
bsw/jbe@4 | 280 if opinion then |
bsw/jbe@4 | 281 if not opinion.fulfilled then |
bsw/jbe@4 | 282 local text = "" |
bsw/jbe@4 | 283 if opinion.degree > 0 then |
bsw/jbe@4 | 284 text = _"Mark suggestion as implemented and express satisfaction" |
bsw/jbe@4 | 285 else |
bsw/jbe@4 | 286 text = _"Mark suggestion as implemented and express dissatisfaction" |
bsw/jbe@4 | 287 end |
bsw/jbe@4 | 288 ui.link{ |
bsw/jbe@4 | 289 attr = { class = "action" }, |
bsw/jbe@4 | 290 text = text, |
bsw/jbe@4 | 291 module = "opinion", |
bsw/jbe@4 | 292 action = "update", |
bsw/jbe@4 | 293 routing = { default = { mode = "redirect", module = request.get_module(), view = request.get_view(), id = param.get_id_cgi(), params = param.get_all_cgi() } }, |
bsw/jbe@4 | 294 params = { |
bsw/jbe@4 | 295 suggestion_id = record.id, |
bsw/jbe@4 | 296 fulfilled = true |
bsw/jbe@19 | 297 }, |
bsw/jbe@19 | 298 partial = partial |
bsw/jbe@4 | 299 } |
bsw/jbe@4 | 300 else |
bsw/jbe@4 | 301 if opinion.degree > 0 then |
bsw/jbe@4 | 302 text = _"Mark suggestion as not implemented and express dissatisfaction" |
bsw/jbe@4 | 303 else |
bsw/jbe@4 | 304 text = _"Mark suggestion as not implemented and express satisfaction" |
bsw/jbe@4 | 305 end |
bsw/jbe@4 | 306 ui.link{ |
bsw/jbe@4 | 307 attr = { class = "action" }, |
bsw/jbe@4 | 308 text = text, |
bsw/jbe@4 | 309 module = "opinion", |
bsw/jbe@4 | 310 action = "update", |
bsw/jbe@4 | 311 routing = { default = { mode = "redirect", module = request.get_module(), view = request.get_view(), id = param.get_id_cgi(), params = param.get_all_cgi() } }, |
bsw/jbe@4 | 312 params = { |
bsw/jbe@4 | 313 suggestion_id = record.id, |
bsw/jbe@4 | 314 fulfilled = false |
bsw/jbe@19 | 315 }, |
bsw/jbe@19 | 316 partial = partial |
bsw/jbe@4 | 317 } |
bsw/jbe@4 | 318 end |
bsw/jbe@4 | 319 end |
bsw/jbe@4 | 320 end |
bsw/jbe@4 | 321 }, |
bsw/jbe@4 | 322 { |
bsw/jbe@4 | 323 content = function(record) |
bsw/jbe@4 | 324 local opinion = Opinion:by_pk(app.session.member.id, record.id) |
bsw/jbe@4 | 325 if opinion then |
bsw/jbe@4 | 326 if (opinion.fulfilled and opinion.degree > 0) or (not opinion.fulfilled and opinion.degree < 0) then |
bsw/jbe@4 | 327 ui.image{ static = "icons/16/thumb_up_green.png" } |
bsw/jbe@4 | 328 else |
bsw/jbe@4 | 329 ui.image{ static = "icons/16/thumb_down_red.png" } |
bsw/jbe@4 | 330 end |
bsw/jbe@4 | 331 end |
bsw/jbe@4 | 332 end |
bsw/jbe@4 | 333 }, |
bsw/jbe@4 | 334 } |
bsw/jbe@4 | 335 } |
bsw/jbe@4 | 336 end |
bsw/jbe@0 | 337 } |
bsw/jbe@0 | 338 end |
bsw/jbe@0 | 339 } |