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