liquid_feedback_frontend

annotate app/main/suggestion/_list.lua @ 2:5c601807d397

Version alpha3

Dark green part of issue supporter bargraph represents all satisfied supporters, regardless of having seen the latest draft

Wiki formatting for drafts

Showing differences between two drafts of the same initiative

Display of outgoing delegation chains

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

Impressum / About Us