liquid_feedback_frontend
diff 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 diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/app/main/issue/_sidebar_members.lua Thu Jul 10 01:19:48 2014 +0200 1.3 @@ -0,0 +1,65 @@ 1.4 +local issue = param.get("issue", "table") 1.5 +local initiative = param.get("initiative", "table") 1.6 + 1.7 +if app.session:has_access("all_pseudonymous") then 1.8 + ui.sidebar ( "tab-members", function () 1.9 + 1.10 + local text = _"Interested members" 1.11 + if issue.state == "finished_with_winner" or issue.state == "finished_without_winner" then 1.12 + text = _"Voters" 1.13 + end 1.14 + 1.15 + ui.sidebarHead( function() 1.16 + ui.heading{ 1.17 + level = 2, content = text 1.18 + } 1.19 + end ) 1.20 + 1.21 + local interested_members_selector 1.22 + 1.23 + if issue.state == "finished_with_winner" or issue.state == "finished_without_winner" then 1.24 + if initiative then 1.25 + interested_members_selector = Member:new_selector() 1.26 + :join("issue", nil, { "issue.id = ?", issue.id }) 1.27 + :join("direct_voter", nil, { "direct_voter.issue_id = ? AND direct_voter.member_id = member.id", issue.id }) 1.28 + :join("vote", nil, { "vote.member_id = member.id AND vote.initiative_id = ?", initiative.id }) 1.29 + :add_field("direct_voter.weight", "voter_weight") 1.30 + :add_field("vote.grade") 1.31 + :add_field("direct_voter.comment", "voter_comment") 1.32 + else 1.33 + interested_members_selector = Member:new_selector() 1.34 + :join("issue", nil, { "issue.id = ?", issue.id }) 1.35 + :join("direct_voter", nil, { "direct_voter.issue_id = ? AND direct_voter.member_id = member.id", issue.id }) 1.36 + :add_field("direct_voter.weight", "voter_weight") 1.37 + :add_field("direct_voter.comment", "voter_comment") 1.38 + end 1.39 + else 1.40 + interested_members_selector= issue:get_reference_selector("interested_members_snapshot") 1.41 + :join("issue", nil, "issue.id = direct_interest_snapshot.issue_id") 1.42 + :add_field("direct_interest_snapshot.weight") 1.43 + :add_where("direct_interest_snapshot.event = issue.latest_snapshot_event") 1.44 + :limit(25) 1.45 + 1.46 + if initiative then 1.47 + 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 }) 1.48 + interested_members_selector:add_field("direct_supporter_snapshot.member_id NOTNULL", "supporter") 1.49 + interested_members_selector:add_field("satisfied", "supporter_satisfied") 1.50 + end 1.51 + end 1.52 + 1.53 + execute.view{ 1.54 + module = "member", 1.55 + view = "_list", 1.56 + params = { 1.57 + issue = issue, 1.58 + initiative = initiative, 1.59 + members_selector = interested_members_selector, 1.60 + no_filter = true, no_paginate = true, 1.61 + member_class = "sidebarRow sidebarRowNarrow", 1.62 + for_votes = issue.state == "finished_with_winner" or issue.state == "finished_without_winner" 1.63 + } 1.64 + } 1.65 + 1.66 + end ) 1.67 + 1.68 +end