liquid_feedback_frontend
view app/main/issue/_sidebar_members.lua @ 1054:13d827829f51
Going to version 3.0.1
| author | bsw | 
|---|---|
| date | Tue Jul 15 21:41:52 2014 +0200 (2014-07-15) | 
| parents | 701a5cf6b067 | 
| 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
