liquid_feedback_frontend
annotate app/main/initiative/_battles.lua @ 154:6b6c82f9ca9f
speedup member image loading when non set
we can add the location of the default file directy instead of going through another slow request
we can add the location of the default file directy instead of going through another slow request
| author | Daniel Poelzleithner <poelzi@poelzi.org> |
|---|---|
| date | Fri Oct 08 15:25:10 2010 +0200 (2010-10-08) |
| parents | a6caaff47205 |
| children | cc64a4fc6ab6 |
| rev | line source |
|---|---|
| bsw@31 | 1 local initiative = param.get("initiative", "table") |
| bsw@31 | 2 |
| bsw@31 | 3 if not initiative.issue.closed then |
| bsw@31 | 4 return |
| bsw@31 | 5 end |
| bsw@31 | 6 |
| bsw@31 | 7 local battled_initiatives = Initiative:new_selector() |
| bsw@31 | 8 :add_field("winning_battle.count", "winning_count") |
| bsw@31 | 9 :add_field("losing_battle.count", "losing_count") |
| bsw@31 | 10 :join("battle", "winning_battle", { "winning_battle.winning_initiative_id = ? AND winning_battle.losing_initiative_id = initiative.id", initiative.id }) |
| bsw@31 | 11 :join("battle", "losing_battle", { "losing_battle.losing_initiative_id = ? AND losing_battle.winning_initiative_id = initiative.id", initiative.id }) |
| bsw@31 | 12 :add_order_by("rank") |
| bsw@31 | 13 :exec() |
| bsw@31 | 14 |
| bsw@31 | 15 |
| bsw@31 | 16 local number_of_initiatives = Initiative:new_selector() |
| bsw@31 | 17 :add_where{ "issue_id = ?", initiative.issue_id } |
| bsw@31 | 18 :add_where("admitted") |
| bsw@31 | 19 :count() |
| bsw@31 | 20 |
| bsw@31 | 21 if number_of_initiatives > 1 then |
| bsw@31 | 22 ui.container{ |
| bsw@31 | 23 attr = { class = "heading first" }, |
| bsw@31 | 24 content = _"This initiative compared to alternative initiatives" |
| bsw@31 | 25 } |
| bsw@31 | 26 |
| bsw@31 | 27 ui.list{ |
| bsw@31 | 28 records = battled_initiatives, |
| bsw@31 | 29 columns = { |
| bsw@31 | 30 { |
| bsw@31 | 31 content = function() |
| bsw@31 | 32 slot.put(_"This initiative") |
| bsw@31 | 33 end |
| bsw@31 | 34 }, |
| bsw@31 | 35 { |
| bsw@31 | 36 content = function(record) |
| bsw@31 | 37 local population = initiative.issue.voter_count |
| bsw@31 | 38 local value = record.winning_count |
| bsw@31 | 39 ui.bargraph{ |
| bsw@31 | 40 class = "bargraph bargraph50", |
| bsw@31 | 41 max_value = population, |
| bsw@31 | 42 width = 50, |
| bsw@31 | 43 bars = { |
| bsw@31 | 44 { color = "#aaa", value = population - value }, |
| bsw@31 | 45 { color = "#444", value = value }, |
| bsw@31 | 46 } |
| bsw@31 | 47 } |
| bsw@31 | 48 end |
| bsw@31 | 49 }, |
| bsw@31 | 50 { |
| bsw@31 | 51 content = function(record) |
| bsw@31 | 52 slot.put(record.winning_count) |
| bsw@31 | 53 end |
| bsw@31 | 54 }, |
| bsw@31 | 55 { |
| bsw@31 | 56 content = function(record) |
| bsw@31 | 57 if record.winning_count == record.losing_count then |
| bsw@31 | 58 ui.image{ static = "icons/16/bullet_blue.png" } |
| bsw@31 | 59 elseif record.winning_count > record.losing_count then |
| bsw@31 | 60 ui.image{ static = "icons/16/resultset_previous.png" } |
| bsw@31 | 61 else |
| bsw@31 | 62 ui.image{ static = "icons/16/resultset_next.png" } |
| bsw@31 | 63 end |
| bsw@31 | 64 end |
| bsw@31 | 65 }, |
| bsw@31 | 66 { |
| bsw@31 | 67 field_attr = { style = "text-align: right;" }, |
| bsw@31 | 68 content = function(record) |
| bsw@31 | 69 slot.put(record.losing_count) |
| bsw@31 | 70 end |
| bsw@31 | 71 }, |
| bsw@31 | 72 { |
| bsw@31 | 73 content = function(record) |
| bsw@31 | 74 local population = initiative.issue.voter_count |
| bsw@31 | 75 local value = record.losing_count |
| bsw@31 | 76 ui.bargraph{ |
| bsw@31 | 77 class = "bargraph bargraph50", |
| bsw@31 | 78 max_value = population, |
| bsw@31 | 79 width = 50, |
| bsw@31 | 80 bars = { |
| bsw@31 | 81 { color = "#444", value = value }, |
| bsw@31 | 82 { color = "#aaa", value = population - value }, |
| bsw@31 | 83 } |
| bsw@31 | 84 } |
| bsw@31 | 85 end |
| bsw@31 | 86 }, |
| bsw@31 | 87 { |
| bsw@31 | 88 content = function(record) |
| bsw@31 | 89 ui.link{ |
| bsw@31 | 90 module = "initiative", |
| bsw@31 | 91 view = "show", |
| bsw@31 | 92 id = record.id, |
| bsw@31 | 93 text = record.name |
| bsw@31 | 94 } |
| bsw@31 | 95 end |
| bsw@31 | 96 } |
| bsw@31 | 97 } |
| bsw@31 | 98 } |
| bsw@31 | 99 end |