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
|