| 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/jbe@1309
 | 
     4 if config.voting_only and not issue.closed then
 | 
| 
bsw/jbe@1309
 | 
     5   return
 | 
| 
bsw/jbe@1309
 | 
     6 end
 | 
| 
bsw/jbe@1309
 | 
     7 
 | 
| 
bsw/jbe@1309
 | 
     8 
 | 
| 
bsw@1045
 | 
     9 if app.session:has_access("all_pseudonymous") then
 | 
| 
bsw@1045
 | 
    10 
 | 
| 
bsw/jbe@1309
 | 
    11   ui.container{ attr = { class = "mdl-card mdl-shadow--2dp mdl-card__fullwidth" }, content = function()
 | 
| 
bsw/jbe@1309
 | 
    12     
 | 
| 
bsw@1080
 | 
    13     ui.tag { tag = "a", attr = { name = "members" }, content = "" }
 | 
| 
bsw/jbe@1309
 | 
    14     ui.container{ attr = { class = "mdl-card__title mdl-card--border" }, content = function()
 | 
| 
bsw/jbe@1309
 | 
    15       local text = _"Interested members"
 | 
| 
bsw/jbe@1309
 | 
    16       if issue.state == "finished_with_winner" or issue.state == "finished_without_winner" then
 | 
| 
bsw/jbe@1309
 | 
    17         text = _"Voters"
 | 
| 
bsw/jbe@1309
 | 
    18       end
 | 
| 
bsw/jbe@1309
 | 
    19       
 | 
| 
bsw/jbe@1309
 | 
    20       ui.container{ attr = { class = "mdl-card__title-text" }, content = text }
 | 
| 
bsw/jbe@1309
 | 
    21     end }
 | 
| 
bsw/jbe@1309
 | 
    22 
 | 
| 
bsw@1045
 | 
    23     local interested_members_selector
 | 
| 
bsw@1045
 | 
    24     
 | 
| 
bsw@1045
 | 
    25     if issue.state == "finished_with_winner" or issue.state == "finished_without_winner" then
 | 
| 
bsw@1045
 | 
    26       if initiative then
 | 
| 
bsw@1045
 | 
    27         interested_members_selector = Member:new_selector()
 | 
| 
bsw@1045
 | 
    28           :join("issue", nil, { "issue.id = ?", issue.id })
 | 
| 
bsw@1045
 | 
    29           :join("direct_voter", nil, { "direct_voter.issue_id = ? AND direct_voter.member_id = member.id", issue.id })
 | 
| 
bsw@1045
 | 
    30           :join("vote", nil, { "vote.member_id = member.id AND vote.initiative_id = ?", initiative.id })
 | 
| 
bsw@1045
 | 
    31           :add_field("direct_voter.weight", "voter_weight")
 | 
| 
bsw@1045
 | 
    32           :add_field("vote.grade")
 | 
| 
bsw@1045
 | 
    33           :add_field("direct_voter.comment", "voter_comment")
 | 
| 
bsw@1045
 | 
    34       else
 | 
| 
bsw@1045
 | 
    35         interested_members_selector = Member:new_selector()
 | 
| 
bsw@1045
 | 
    36           :join("issue", nil, { "issue.id = ?", issue.id })
 | 
| 
bsw@1045
 | 
    37           :join("direct_voter", nil, { "direct_voter.issue_id = ? AND direct_voter.member_id = member.id", issue.id })
 | 
| 
bsw@1045
 | 
    38           :add_field("direct_voter.weight", "voter_weight")
 | 
| 
bsw@1045
 | 
    39           :add_field("direct_voter.comment", "voter_comment")
 | 
| 
bsw@1045
 | 
    40       end
 | 
| 
bsw@1045
 | 
    41     else
 | 
| 
bsw@1079
 | 
    42       interested_members_selector = issue:get_reference_selector("interested_members_snapshot")
 | 
| 
bsw@1045
 | 
    43         :join("issue", nil, "issue.id = direct_interest_snapshot.issue_id")
 | 
| 
bsw@1045
 | 
    44         :add_field("direct_interest_snapshot.weight")
 | 
| 
bsw/jbe@1309
 | 
    45         :add_where("direct_interest_snapshot.snapshot_id = issue.latest_snapshot_id")
 | 
| 
bsw@1045
 | 
    46 
 | 
| 
bsw@1045
 | 
    47       if initiative then
 | 
| 
bsw/jbe@1309
 | 
    48         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.snapshot_id = issue.latest_snapshot_id", initiative.id })
 | 
| 
bsw@1045
 | 
    49         interested_members_selector:add_field("direct_supporter_snapshot.member_id NOTNULL", "supporter")
 | 
| 
bsw@1045
 | 
    50         interested_members_selector:add_field("satisfied", "supporter_satisfied")
 | 
| 
bsw@1045
 | 
    51       end
 | 
| 
bsw@1045
 | 
    52     end
 | 
| 
bsw@1045
 | 
    53     
 | 
| 
bsw/jbe@1309
 | 
    54     ui.container{ attr = { class = "mdl-card__content" }, content = function()
 | 
| 
bsw/jbe@1309
 | 
    55       execute.view{
 | 
| 
bsw/jbe@1309
 | 
    56         module = "member",
 | 
| 
bsw/jbe@1309
 | 
    57         view = "_list",
 | 
| 
bsw/jbe@1309
 | 
    58         params = {
 | 
| 
bsw/jbe@1309
 | 
    59           issue = issue,
 | 
| 
bsw/jbe@1309
 | 
    60           initiative = initiative,
 | 
| 
bsw/jbe@1309
 | 
    61           members_selector = interested_members_selector,
 | 
| 
bsw/jbe@1309
 | 
    62           paginator_name = "members",
 | 
| 
bsw/jbe@1309
 | 
    63           member_class = "sidebarRow sidebarRowNarrow",
 | 
| 
bsw/jbe@1309
 | 
    64           for_votes = issue.state == "finished_with_winner" or issue.state == "finished_without_winner",
 | 
| 
bsw/jbe@1309
 | 
    65           no_filter = true
 | 
| 
bsw/jbe@1309
 | 
    66         }
 | 
| 
bsw@1045
 | 
    67       }
 | 
| 
bsw/jbe@1309
 | 
    68     end }
 | 
| 
bsw/jbe@1309
 | 
    69   end }
 | 
| 
bsw@1045
 | 
    70 end
 |