liquid_feedback_frontend

annotate app/main/report/initiative.lua @ 159:5d797c6706d5

implement quorum display

show the initiative quorum as a small 1px line in bargraph
allow to update your support on the diff page
better linked title in diff page
show absolute quorum numbers in detail pages of issue and initiative
author Daniel Poelzleithner <poelzi@poelzi.org>
date Sat Oct 09 03:42:48 2010 +0200 (2010-10-09)
parents a6caaff47205
children
rev   line source
bsw@31 1 local initiative = param.get("initiative", "table")
bsw@31 2
bsw@31 3 link_area(initiative.issue.area)
bsw@31 4
bsw@31 5 link_issue(initiative.issue)
bsw@31 6
bsw@31 7 ui.link{
bsw@31 8 external = "",
bsw@31 9 attr = {
bsw@31 10 style = "display: block; text-decoration: none;",
bsw@31 11 name = "initiative_" .. tostring(initiative.id),
bsw@31 12 },
bsw@31 13 content = function()
bsw@31 14 ui.heading{
bsw@31 15 content = _("##{issue_id}.#{id} #{name}", { issue_id = initiative.issue.id, id = initiative.id, name = initiative.shortened_name })
bsw@31 16 }
bsw@31 17 end
bsw@31 18 }
bsw@31 19
bsw@31 20 slot.put("<br />")
bsw@31 21
bsw@31 22 if initiative.issue.ranks_available and initiative.admitted then
bsw@31 23 local class = initiative.rank == 1 and "admitted_info" or "not_admitted_info"
bsw@31 24 ui.container{
bsw@31 25 attr = { class = class },
bsw@31 26 content = function()
bsw@31 27 local max_value = initiative.issue.voter_count
bsw@31 28 slot.put("&nbsp;")
bsw@31 29 local positive_votes = initiative.positive_votes
bsw@31 30 local negative_votes = initiative.negative_votes
bsw@31 31 slot.put(_"Yes" .. ": <b>" .. tostring(positive_votes) .. "</b>")
bsw@31 32 slot.put(" &middot; ")
bsw@31 33 slot.put(_"Abstention" .. ": <b>" .. tostring(max_value - initiative.negative_votes - initiative.positive_votes) .. "</b>")
bsw@31 34 slot.put(" &middot; ")
bsw@31 35 slot.put(_"No" .. ": <b>" .. tostring(initiative.negative_votes) .. "</b>")
bsw@31 36 slot.put(" &middot; ")
bsw@31 37 slot.put("<b>")
bsw@31 38 if initiative.rank == 1 then
bsw@31 39 slot.put(_"Approved")
bsw@31 40 elseif initiative.rank then
bsw@31 41 slot.put(_("Not approved (rank #{rank})", { rank = initiative.rank }))
bsw@31 42 else
bsw@31 43 slot.put(_"Not approved")
bsw@31 44 end
bsw@31 45 slot.put("</b>")
bsw@31 46 end
bsw@31 47 }
bsw@31 48 end
bsw@31 49
bsw@31 50 if initiative.issue.state == "cancelled" then
bsw@31 51 local policy = initiative.issue.policy
bsw@31 52 ui.container{
bsw@31 53 attr = { class = "not_admitted_info" },
bsw@31 54 content = _("This issue has been cancelled. It failed the quorum of #{quorum}.", { quorum = format.percentage(policy.issue_quorum_num / policy.issue_quorum_den) })
bsw@31 55 }
bsw@31 56 elseif initiative.admitted == false then
bsw@31 57 local policy = initiative.issue.policy
bsw@31 58 ui.container{
bsw@31 59 attr = { class = "not_admitted_info" },
bsw@31 60 content = _("This initiative has not been admitted! It failed the quorum of #{quorum}.", { quorum = format.percentage(policy.initiative_quorum_num / policy.initiative_quorum_den) })
bsw@31 61 }
bsw@31 62 end
bsw@31 63
bsw@31 64 if initiative.revoked then
bsw@31 65 ui.container{
bsw@31 66 attr = { class = "revoked_info" },
bsw@31 67 content = function()
bsw@31 68 slot.put(_("This initiative has been revoked at #{revoked}", { revoked = format.timestamp(initiative.revoked) }))
bsw@31 69 end
bsw@31 70 }
bsw@31 71 end
bsw@31 72
bsw@31 73
bsw@31 74 ui.container{
bsw@31 75 attr = { class = "draft_content wiki" },
bsw@31 76 content = function()
bsw@31 77 slot.put(format.wiki_text(initiative.current_draft.content, initiative.current_draft.formatting_engine))
bsw@31 78 end
bsw@31 79 }
bsw@31 80
bsw@31 81 execute.view{
bsw@31 82 module = "initiative",
bsw@31 83 view = "_battles",
bsw@31 84 params = { initiative = initiative }
bsw@31 85 }
bsw@31 86

Impressum / About Us