liquid_feedback_frontend

view app/main/issue/_sidebar_members.lua @ 1858:3d1f0464a3ea

Handle missing ldap.member.allowed function
author bsw
date Tue Sep 20 17:35:29 2022 +0200 (20 months ago)
parents 64229f002a47
children
line source
1 local issue = param.get("issue", "table")
2 local initiative = param.get("initiative", "table")
4 if config.voting_only and not issue.closed then
5 return
6 end
9 if app.session:has_access("all_pseudonymous") then
11 ui.container{ attr = { class = "mdl-card mdl-shadow--2dp mdl-card__fullwidth" }, content = function()
13 ui.tag { tag = "a", attr = { name = "members" }, content = "" }
14 ui.container{ attr = { class = "mdl-card__title mdl-card--border" }, content = function()
15 local text = _"Interested members"
16 if issue.state == "finished_with_winner" or issue.state == "finished_without_winner" then
17 text = _"Voters"
18 end
20 ui.container{ attr = { class = "mdl-card__title-text" }, content = text }
21 end }
23 local interested_members_selector
25 if issue.state == "finished_with_winner" or issue.state == "finished_without_winner" then
26 if initiative then
27 interested_members_selector = Member:new_selector()
28 :join("issue", nil, { "issue.id = ?", issue.id })
29 :join("direct_voter", nil, { "direct_voter.issue_id = ? AND direct_voter.member_id = member.id", issue.id })
30 :join("vote", nil, { "vote.member_id = member.id AND vote.initiative_id = ?", initiative.id })
31 :add_field("direct_voter.ownweight", "ownweight")
32 :add_field("direct_voter.weight", "voter_weight")
33 :add_field("vote.grade")
34 :add_field("direct_voter.comment", "voter_comment")
35 else
36 interested_members_selector = Member:new_selector()
37 :join("issue", nil, { "issue.id = ?", issue.id })
38 :join("direct_voter", nil, { "direct_voter.issue_id = ? AND direct_voter.member_id = member.id", issue.id })
39 :add_field("direct_voter.ownweight", "ownweight")
40 :add_field("direct_voter.weight", "voter_weight")
41 :add_field("direct_voter.comment", "voter_comment")
42 end
43 else
44 interested_members_selector = issue:get_reference_selector("interested_members_snapshot")
45 :join("issue", nil, "issue.id = direct_interest_snapshot.issue_id")
46 :add_field("direct_interest_snapshot.ownweight")
47 :add_field("direct_interest_snapshot.weight")
48 :add_where("direct_interest_snapshot.snapshot_id = issue.latest_snapshot_id")
50 if initiative then
51 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 })
52 interested_members_selector:add_field("direct_supporter_snapshot.member_id NOTNULL", "supporter")
53 interested_members_selector:add_field("satisfied", "supporter_satisfied")
54 end
55 end
57 ui.container{ attr = { class = "mdl-card__content" }, content = function()
58 execute.view{
59 module = "member",
60 view = "_list",
61 params = {
62 issue = issue,
63 initiative = initiative,
64 members_selector = interested_members_selector,
65 paginator_name = "members",
66 member_class = "sidebarRow sidebarRowNarrow",
67 for_votes = issue.state == "finished_with_winner" or issue.state == "finished_without_winner",
68 no_filter = true
69 }
70 }
71 end }
72 end }
73 end

Impressum / About Us