liquid_feedback_frontend

annotate app/main/initiative/_battles.lua @ 969:c23a25f38c44

Added missing share lock on issue to initiative creation action
author bsw
date Sat Mar 09 19:05:56 2013 +0100 (2013-03-09)
parents cc64a4fc6ab6
children 701a5cf6b067
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.list{
bsw@31 23 records = battled_initiatives,
bsw@31 24 columns = {
bsw@31 25 {
bsw@31 26 content = function()
bsw@31 27 slot.put(_"This initiative")
bsw@31 28 end
bsw@31 29 },
bsw@31 30 {
bsw@31 31 content = function(record)
bsw@31 32 local population = initiative.issue.voter_count
bsw@31 33 local value = record.winning_count
bsw@31 34 ui.bargraph{
bsw@31 35 class = "bargraph bargraph50",
bsw@31 36 max_value = population,
bsw@31 37 width = 50,
bsw@31 38 bars = {
bsw@31 39 { color = "#aaa", value = population - value },
bsw@31 40 { color = "#444", value = value },
bsw@31 41 }
bsw@31 42 }
bsw@31 43 end
bsw@31 44 },
bsw@31 45 {
bsw@31 46 content = function(record)
bsw@31 47 slot.put(record.winning_count)
bsw@31 48 end
bsw@31 49 },
bsw@31 50 {
bsw@31 51 content = function(record)
bsw@31 52 if record.winning_count == record.losing_count then
bsw@31 53 ui.image{ static = "icons/16/bullet_blue.png" }
bsw@31 54 elseif record.winning_count > record.losing_count then
bsw@31 55 ui.image{ static = "icons/16/resultset_previous.png" }
bsw@31 56 else
bsw@31 57 ui.image{ static = "icons/16/resultset_next.png" }
bsw@31 58 end
bsw@31 59 end
bsw@31 60 },
bsw@31 61 {
bsw@31 62 field_attr = { style = "text-align: right;" },
bsw@31 63 content = function(record)
bsw@31 64 slot.put(record.losing_count)
bsw@31 65 end
bsw@31 66 },
bsw@31 67 {
bsw@31 68 content = function(record)
bsw@31 69 local population = initiative.issue.voter_count
bsw@31 70 local value = record.losing_count
bsw@31 71 ui.bargraph{
bsw@31 72 class = "bargraph bargraph50",
bsw@31 73 max_value = population,
bsw@31 74 width = 50,
bsw@31 75 bars = {
bsw@31 76 { color = "#444", value = value },
bsw@31 77 { color = "#aaa", value = population - value },
bsw@31 78 }
bsw@31 79 }
bsw@31 80 end
bsw@31 81 },
bsw@31 82 {
bsw@31 83 content = function(record)
bsw@31 84 ui.link{
bsw@31 85 module = "initiative",
bsw@31 86 view = "show",
bsw@31 87 id = record.id,
bsw@31 88 text = record.name
bsw@31 89 }
bsw@31 90 end
bsw@31 91 }
bsw@31 92 }
bsw@31 93 }
bsw@31 94 end

Impressum / About Us