liquid_feedback_frontend

view app/main/member/_list.lua @ 1037:50dffd7ceff5

Added tag v2.2.4 for changeset 046c03097881
author jbe
date Mon Aug 12 22:03:59 2013 +0200 (2013-08-12)
parents cdd0bcbbef8b
children 701a5cf6b067
line source
1 local members_selector = param.get("members_selector", "table")
2 members_selector:add_where("member.activated NOTNULL")
4 local initiative = param.get("initiative", "table")
5 local issue = param.get("issue", "table")
6 local trustee = param.get("trustee", "table")
7 local initiator = param.get("initiator", "table")
8 local for_votes = param.get("for_votes", atom.boolean)
10 local paginator_name = param.get("paginator_name")
12 if initiative or issue then
13 if for_votes then
14 members_selector:left_join("delegating_voter", "_member_list__delegating_voter", { "_member_list__delegating_voter.issue_id = issue.id AND _member_list__delegating_voter.member_id = ?", app.session.member_id })
15 members_selector:add_field("_member_list__delegating_voter.delegate_member_ids", "delegate_member_ids")
16 else
17 members_selector:left_join("delegating_interest_snapshot", "_member_list__delegating_interest", { "_member_list__delegating_interest.event = issue.latest_snapshot_event AND _member_list__delegating_interest.issue_id = issue.id AND _member_list__delegating_interest.member_id = ?", app.session.member_id })
18 members_selector:add_field("_member_list__delegating_interest.delegate_member_ids", "delegate_member_ids")
19 end
20 end
22 ui.add_partial_param_names{ "member_list" }
24 local filter = { name = "member_list" }
26 if issue or initiative then
27 end
29 filter[#filter+1] = {
30 name = "newest",
31 label = _"Newest",
32 selector_modifier = function(selector) selector:add_order_by("activated DESC, id DESC") end
33 }
34 filter[#filter+1] = {
35 name = "oldest",
36 label = _"Oldest",
37 selector_modifier = function(selector) selector:add_order_by("activated, id") end
38 }
40 filter[#filter+1] = {
41 name = "name",
42 label = _"A-Z",
43 selector_modifier = function(selector) selector:add_order_by("name") end
44 }
45 filter[#filter+1] = {
46 name = "name_desc",
47 label = _"Z-A",
48 selector_modifier = function(selector) selector:add_order_by("name DESC") end
49 }
51 local ui_filters = ui.filters
52 if issue or initiative then
53 ui_filters = function(args) args.content() end
54 if for_votes then
55 members_selector:add_order_by("voter_weight DESC, name, id")
56 else
57 members_selector:add_order_by("weight DESC, name, id")
58 end
59 end
61 ui_filters{
62 label = _"Change order",
63 selector = members_selector,
64 filter,
65 content = function()
66 ui.paginate{
67 name = paginator_name,
68 anchor = paginator_name,
69 selector = members_selector,
70 per_page = 50,
71 content = function()
72 ui.container{
73 attr = { class = "member_list" },
74 content = function()
75 local members = members_selector:exec()
77 for i, member in ipairs(members) do
78 execute.view{
79 module = "member",
80 view = "_show_thumb",
81 params = {
82 member = member,
83 initiative = initiative,
84 issue = issue,
85 trustee = trustee,
86 initiator = initiator
87 }
88 }
89 end
92 end
93 }
94 slot.put('<br style="clear: left;" />')
95 end
96 }
97 end
98 }

Impressum / About Us