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
|