liquid_feedback_frontend

view app/main/issue/_sidebar_members.lua @ 1045:701a5cf6b067

Imported LiquidFeedback Frontend 3.0 branch
author bsw
date Thu Jul 10 01:19:48 2014 +0200 (2014-07-10)
parents
children aba047e2bac4
line source
1 local issue = param.get("issue", "table")
2 local initiative = param.get("initiative", "table")
4 if app.session:has_access("all_pseudonymous") then
5 ui.sidebar ( "tab-members", function ()
7 local text = _"Interested members"
8 if issue.state == "finished_with_winner" or issue.state == "finished_without_winner" then
9 text = _"Voters"
10 end
12 ui.sidebarHead( function()
13 ui.heading{
14 level = 2, content = text
15 }
16 end )
18 local interested_members_selector
20 if issue.state == "finished_with_winner" or issue.state == "finished_without_winner" then
21 if initiative then
22 interested_members_selector = Member:new_selector()
23 :join("issue", nil, { "issue.id = ?", issue.id })
24 :join("direct_voter", nil, { "direct_voter.issue_id = ? AND direct_voter.member_id = member.id", issue.id })
25 :join("vote", nil, { "vote.member_id = member.id AND vote.initiative_id = ?", initiative.id })
26 :add_field("direct_voter.weight", "voter_weight")
27 :add_field("vote.grade")
28 :add_field("direct_voter.comment", "voter_comment")
29 else
30 interested_members_selector = Member:new_selector()
31 :join("issue", nil, { "issue.id = ?", issue.id })
32 :join("direct_voter", nil, { "direct_voter.issue_id = ? AND direct_voter.member_id = member.id", issue.id })
33 :add_field("direct_voter.weight", "voter_weight")
34 :add_field("direct_voter.comment", "voter_comment")
35 end
36 else
37 interested_members_selector= issue:get_reference_selector("interested_members_snapshot")
38 :join("issue", nil, "issue.id = direct_interest_snapshot.issue_id")
39 :add_field("direct_interest_snapshot.weight")
40 :add_where("direct_interest_snapshot.event = issue.latest_snapshot_event")
41 :limit(25)
43 if initiative then
44 interested_members_selector:left_join("direct_supporter_snapshot", nil, { "direct_supporter_snapshot.initiative_id = ? AND direct_interest_snapshot.issue_id = direct_supporter_snapshot.issue_id AND direct_supporter_snapshot.member_id = direct_interest_snapshot.member_id AND direct_supporter_snapshot.event = issue.latest_snapshot_event", initiative.id })
45 interested_members_selector:add_field("direct_supporter_snapshot.member_id NOTNULL", "supporter")
46 interested_members_selector:add_field("satisfied", "supporter_satisfied")
47 end
48 end
50 execute.view{
51 module = "member",
52 view = "_list",
53 params = {
54 issue = issue,
55 initiative = initiative,
56 members_selector = interested_members_selector,
57 no_filter = true, no_paginate = true,
58 member_class = "sidebarRow sidebarRowNarrow",
59 for_votes = issue.state == "finished_with_winner" or issue.state == "finished_without_winner"
60 }
61 }
63 end )
65 end

Impressum / About Us