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
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 } |