liquid_feedback_frontend
view app/main/issue/_sidebar_members.lua @ 1250:84f6e17c7ceb
Completed support for new notification system
| author | bsw | 
|---|---|
| date | Sun Apr 17 15:03:44 2016 +0200 (2016-04-17) | 
| parents | cb9e75ac968f | 
| children | 32cc544d5a5b | 
 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     ui.tag { tag = "a", attr = { name = "members" }, content = "" }
     8     local text = _"Interested members"
     9     if issue.state == "finished_with_winner" or issue.state == "finished_without_winner" then
    10       text = _"Voters"
    11     end
    13     ui.sidebarHead( function()
    14       ui.heading{
    15         level = 2, content = text
    16       }
    17     end )
    19     local interested_members_selector
    21     if issue.state == "finished_with_winner" or issue.state == "finished_without_winner" then
    22       if initiative then
    23         interested_members_selector = Member:new_selector()
    24           :join("issue", nil, { "issue.id = ?", issue.id })
    25           :join("direct_voter", nil, { "direct_voter.issue_id = ? AND direct_voter.member_id = member.id", issue.id })
    26           :join("vote", nil, { "vote.member_id = member.id AND vote.initiative_id = ?", initiative.id })
    27           :add_field("direct_voter.weight", "voter_weight")
    28           :add_field("vote.grade")
    29           :add_field("direct_voter.comment", "voter_comment")
    30       else
    31         interested_members_selector = Member:new_selector()
    32           :join("issue", nil, { "issue.id = ?", issue.id })
    33           :join("direct_voter", nil, { "direct_voter.issue_id = ? AND direct_voter.member_id = member.id", issue.id })
    34           :add_field("direct_voter.weight", "voter_weight")
    35           :add_field("direct_voter.comment", "voter_comment")
    36       end
    37     else
    38       interested_members_selector = issue:get_reference_selector("interested_members_snapshot")
    39         :join("issue", nil, "issue.id = direct_interest_snapshot.issue_id")
    40         :add_field("direct_interest_snapshot.weight")
    41         :add_where("direct_interest_snapshot.event = issue.latest_snapshot_event")
    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         paginator_name = "members",
    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
