| 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@1080
 | 
     7     ui.tag { tag = "a", attr = { name = "members" }, content = "" }
 | 
| 
bsw@1045
 | 
     8     local text = _"Interested members"
 | 
| 
bsw@1045
 | 
     9     if issue.state == "finished_with_winner" or issue.state == "finished_without_winner" then
 | 
| 
bsw@1045
 | 
    10       text = _"Voters"
 | 
| 
bsw@1045
 | 
    11     end
 | 
| 
bsw@1045
 | 
    12     
 | 
| 
bsw@1045
 | 
    13     ui.sidebarHead( function()
 | 
| 
bsw@1045
 | 
    14       ui.heading{
 | 
| 
bsw@1045
 | 
    15         level = 2, content = text
 | 
| 
bsw@1045
 | 
    16       }
 | 
| 
bsw@1045
 | 
    17     end )
 | 
| 
bsw@1045
 | 
    18     
 | 
| 
bsw@1045
 | 
    19     local interested_members_selector
 | 
| 
bsw@1045
 | 
    20     
 | 
| 
bsw@1045
 | 
    21     if issue.state == "finished_with_winner" or issue.state == "finished_without_winner" then
 | 
| 
bsw@1045
 | 
    22       if initiative then
 | 
| 
bsw@1045
 | 
    23         interested_members_selector = Member:new_selector()
 | 
| 
bsw@1045
 | 
    24           :join("issue", nil, { "issue.id = ?", issue.id })
 | 
| 
bsw@1045
 | 
    25           :join("direct_voter", nil, { "direct_voter.issue_id = ? AND direct_voter.member_id = member.id", issue.id })
 | 
| 
bsw@1045
 | 
    26           :join("vote", nil, { "vote.member_id = member.id AND vote.initiative_id = ?", initiative.id })
 | 
| 
bsw@1045
 | 
    27           :add_field("direct_voter.weight", "voter_weight")
 | 
| 
bsw@1045
 | 
    28           :add_field("vote.grade")
 | 
| 
bsw@1045
 | 
    29           :add_field("direct_voter.comment", "voter_comment")
 | 
| 
bsw@1045
 | 
    30       else
 | 
| 
bsw@1045
 | 
    31         interested_members_selector = Member:new_selector()
 | 
| 
bsw@1045
 | 
    32           :join("issue", nil, { "issue.id = ?", issue.id })
 | 
| 
bsw@1045
 | 
    33           :join("direct_voter", nil, { "direct_voter.issue_id = ? AND direct_voter.member_id = member.id", issue.id })
 | 
| 
bsw@1045
 | 
    34           :add_field("direct_voter.weight", "voter_weight")
 | 
| 
bsw@1045
 | 
    35           :add_field("direct_voter.comment", "voter_comment")
 | 
| 
bsw@1045
 | 
    36       end
 | 
| 
bsw@1045
 | 
    37     else
 | 
| 
bsw@1079
 | 
    38       interested_members_selector = issue:get_reference_selector("interested_members_snapshot")
 | 
| 
bsw@1045
 | 
    39         :join("issue", nil, "issue.id = direct_interest_snapshot.issue_id")
 | 
| 
bsw@1045
 | 
    40         :add_field("direct_interest_snapshot.weight")
 | 
| 
bsw@1045
 | 
    41         :add_where("direct_interest_snapshot.event = issue.latest_snapshot_event")
 | 
| 
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@1080
 | 
    57         paginator_name = "members",
 | 
| 
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
 |