liquid_feedback_frontend
annotate app/main/initiative/_battles.lua @ 135:02e24b4dd21c
fixes bug #50
make info clear that the user does not directly support a initiative but could support it by delegation
make info clear that the user does not directly support a initiative but could support it by delegation
| author | Daniel Poelzleithner <poelzi@poelzi.org> | 
|---|---|
| date | Tue Oct 05 21:14:54 2010 +0200 (2010-10-05) | 
| 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 |