liquid_feedback_frontend

view app/main/member/_list.lua @ 452:c3b3a932f81f

Reordered member list filter
author bsw
date Sun Mar 11 17:10:07 2012 +0100 (2012-03-11)
parents 805bb2f70b0a
children cc64a4fc6ab6
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 if initiative or issue then
11 if for_votes then
12 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 })
13 members_selector:add_field("_member_list__delegating_voter.delegate_member_ids", "delegate_member_ids")
14 else
15 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 })
16 members_selector:add_field("_member_list__delegating_interest.delegate_member_ids", "delegate_member_ids")
17 end
18 end
20 ui.add_partial_param_names{ "member_list" }
22 local filter = { name = "member_list" }
24 if issue or initiative then
25 if for_votes then
26 filter[#filter+1] = {
27 name = "delegations",
28 label = _"Delegations",
29 selector_modifier = function(selector) selector:add_order_by("voter_weight DESC") end
30 }
31 else
32 filter[#filter+1] = {
33 name = "delegations",
34 label = _"Delegations",
35 selector_modifier = function(selector) selector:add_order_by("weight DESC") end
36 }
37 end
38 end
40 filter[#filter+1] = {
41 name = "newest",
42 label = _"Newest",
43 selector_modifier = function(selector) selector:add_order_by("activated DESC, id DESC") end
44 }
45 filter[#filter+1] = {
46 name = "oldest",
47 label = _"Oldest",
48 selector_modifier = function(selector) selector:add_order_by("activated, id") end
49 }
51 filter[#filter+1] = {
52 name = "name",
53 label = _"A-Z",
54 selector_modifier = function(selector) selector:add_order_by("name") end
55 }
56 filter[#filter+1] = {
57 name = "name_desc",
58 label = _"Z-A",
59 selector_modifier = function(selector) selector:add_order_by("name DESC") end
60 }
62 ui.filters{
63 label = _"Change order",
64 selector = members_selector,
65 filter,
66 content = function()
67 ui.paginate{
68 selector = members_selector,
69 per_page = 100,
70 content = function()
71 ui.container{
72 attr = { class = "member_list" },
73 content = function()
74 local members = members_selector:exec()
76 for i, member in ipairs(members) do
77 execute.view{
78 module = "member",
79 view = "_show_thumb",
80 params = {
81 member = member,
82 initiative = initiative,
83 issue = issue,
84 trustee = trustee,
85 initiator = initiator
86 }
87 }
88 end
91 end
92 }
93 slot.put('<br style="clear: left;" />')
94 end
95 }
96 end
97 }

Impressum / About Us