liquid_feedback_frontend

view app/main/lf2/initiative.lua @ 216:4f6e6b213fb8

Cleanup on second generation frontend code and stylesheet
author bsw
date Mon Mar 07 12:15:22 2011 +0100 (2011-03-07)
parents 1dab81353eb1
children 73dbc9e2bfd4
line source
1 slot.set_layout("lf2")
3 slot.put_into("leftright_pre", '<div class="sidebar_right">')
4 slot.put_into("leftright_post", '</div>')
6 local initiative = Initiative:by_id(param.get_id())
8 local issue = initiative.issue
9 issue:load("interest_for_member", { member_id = app.session.member_id }, "interest")
11 local supporting_members_selector = Member:new_selector()
12 :join("direct_supporter_snapshot", "dss", { "dss.issue_id = ? AND dss.initiative_id = ? AND dss.member_id = member.id and dss.event = (select latest_snapshot_event from issue where id = ?)", issue.id, initiative.id, issue.id })
13 :join("direct_interest_snapshot", "dis", { "dis.issue_id = ? AND dis.member_id = member.id and dis.event = (select latest_snapshot_event from issue where id = ?)", issue.id, issue.id })
14 :add_field("dis.weight", "weight")
15 :add_order_by("dis.weight DESC")
16 local supporting_members = supporting_members_selector:exec()
18 local voting_members_selector = Member:new_selector()
19 :join("direct_voter", nil, { "direct_voter.issue_id = ? AND direct_voter.member_id = member.id", issue.id })
20 :add_field("direct_voter.weight", "weight")
21 :add_order_by("direct_voter.weight DESC")
22 local voting_members = voting_members_selector:exec()
24 local alternative_initiatives = initiative.issue.initiatives
25 alternative_initiatives:load("initiating_members", nil, "initiating_members")
27 local support = Supporter:by_pk(initiative.id, app.session.member.id)
29 app.topnav_phase = issue.phase
32 slot.select("sidebar", function()
34 execute.view{ module = "lf2", view = "_sidebar_issue", params = { issue = issue, initiative_id = initiative.id, alternative_initiatives = alternative_initiatives } }
36 execute.view{ module = "lf2", view = "_sidebar_drafts", params = {
37 initiative = initiative
38 } }
40 end)
42 local draft = initiative.current_draft
44 ui.box{
45 content = function()
47 ui.box_row{ class = "initiative head2", content = function() ui.box_col { content = function()
48 execute.view{ module = "lf2", view = "_initiative", params = { initiative = initiative } }
49 end } end }
51 ui.box_row{ class = "head", content = function() ui.box_col{ content = function()
52 if initiative.issue.closed then
53 if initiative.issue.accepted then
54 if initiative.admitted then
55 if initiative.agreed then
56 if initiative.rank == 1 then
57 ui.image{ static = "lf2/icon_award_gold.png" }
58 slot.put(" ")
59 ui.tag{ content = _"Approved" }
60 else
61 ui.image{ static = "lf2/icon_award_silver.png" }
62 slot.put(" ")
63 ui.tag{ content = _("Not approved (rank #{rank})", { rank = initiative.rank }) }
64 end
65 else
66 ui.image{ static = "lf2/icon_cross.png" }
67 slot.put(" ")
68 ui.tag{ content = _"Initiative not approved" }
69 end
70 else
71 ui.image{ static = "lf2/icon_cross.png" }
72 slot.put(" ")
73 ui.tag{ content = _"Initiative not admitted" }
74 end
75 else
76 ui.image{ static = "lf2/icon_cross.png" }
77 slot.put(" ")
78 ui.tag{ content = _"Issue not accepted" }
79 end
80 slot.put(" ")
81 end
83 if initiative.issue.fully_frozen and initiative.issue.closed then
84 if initiative.admitted and initiative.issue.ranks_available then
85 slot.put(" &middot ")
86 ui.link{ external = "#votes", text = _("#{vote_count}+#{delegated_weight} votes", { vote_count = #voting_members, delegated_weight = initiative.issue.voter_count - #voting_members }) }
87 end
88 end
89 if initiative.issue.closed then
90 slot.put(" &middot; ")
91 end
92 ui.link{ external = "#suggestions", text = _("#{suggestion_count} suggestions", { suggestion_count = 23 }) }
93 slot.put(" &middot; ")
94 ui.link{ external = "#supporters", text = _("#{supporter_count}+#{delegated_weight} supporters", { supporter_count = #supporting_members, delegated_weight = initiative.supporter_count - #supporting_members }) }
95 end } end }
97 execute.view{ module = "lf2", view = "_initiative_support", params = {
98 initiative = initiative
99 } }
101 ui.box_row{ class = "subhead", content = function() ui.box_col{ class = "head", content = _"Current draft" } end }
102 ui.box_row{ class = "member_content", content = function() ui.box_col{ content = function()
103 execute.view{ module = "lf2", view = "_draft", params = { draft = draft } }
104 end } end }
106 if initiative.issue.fully_frozen and initiative.issue.closed then
107 ui.box_row{ class = "subhead", content = function() ui.box_col{ class = "head", content = _"Voters" } end }
108 ui.box_row{ content = function() ui.box_col{ content = function()
109 execute.view{ module = "lf2", view = "_avatars", params = { members = voting_members, issue_id = initiative.issue_id } }
110 end } end }
111 end
113 ui.box_row{ class = "subhead", content = function() ui.box_col{ class = "head", content = _"Suggestions" } end }
114 ui.box_row{ content = function() ui.box_col{ content = function()
115 slot.put("suggestions")
116 end } end }
118 ui.box_row{ class = "subhead", content = function() ui.box_col{ class = "head", content = _"Supporters" } end }
119 ui.box_row{ content = function() ui.box_col{ content = function()
120 execute.view{ module = "lf2", view = "_avatars", params = { members = supporting_members, issue_id = initiative.issue_id } }
121 end } end }
123 end }

Impressum / About Us