liquid_feedback_frontend

annotate app/main/suggestion/_list.lua @ 1:dd0109e81922

Version alpha2

Minor bug in bargraph output for suggestions fixed
author bsw
date Wed Nov 18 12:00:00 2009 +0100 (2009-11-18)
parents 3bfb2fcf7ab9
children 5c601807d397
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@1 24 local max_value = record.initiative.issue.population
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@1 108 local max_value = record.initiative.issue.population
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@1 128 local max_value = record.initiative.issue.population
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 }

Impressum / About Us