liquid_feedback_frontend

view app/main/member/_list.lua @ 275:fc14e76afe31

Made filter better useable
author bsw
date Sun Feb 12 13:42:08 2012 +0100 (2012-02-12)
parents 394e264f9f2b
children c587d8762e62
line source
1 local members_selector = param.get("members_selector", "table")
2 local initiative = param.get("initiative", "table")
3 local issue = param.get("issue", "table")
4 local trustee = param.get("trustee", "table")
5 local initiator = param.get("initiator", "table")
6 local for_votes = param.get("for_votes", atom.boolean)
8 if initiative or issue then
9 if for_votes then
10 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 })
11 members_selector:add_field("_member_list__delegating_voter.delegate_member_ids", "delegate_member_ids")
12 else
13 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 })
14 members_selector:add_field("_member_list__delegating_interest.delegate_member_ids", "delegate_member_ids")
15 end
16 end
18 ui.add_partial_param_names{ "member_list" }
20 local filter = {
21 name = "member_list",
22 {
23 name = "name",
24 label = _"A-Z",
25 selector_modifier = function(selector) selector:add_order_by("name") end
26 },
27 {
28 name = "name_desc",
29 label = _"Z-A",
30 selector_modifier = function(selector) selector:add_order_by("name DESC") end
31 },
32 {
33 name = "newest",
34 label = _"Newest",
35 selector_modifier = function(selector) selector:add_order_by("created DESC, id DESC") end
36 },
37 {
38 name = "oldest",
39 label = _"Oldest",
40 selector_modifier = function(selector) selector:add_order_by("created, id") end
41 },
42 }
44 if initiative then
45 if for_votes then
46 filter[#filter] = {
47 name = "delegations",
48 label = _"Delegations",
49 selector_modifier = function(selector) selector:add_order_by("voter_weight DESC") end
50 }
51 else
52 filter[#filter] = {
53 name = "delegations",
54 label = _"Delegations",
55 selector_modifier = function(selector) selector:add_order_by("weight DESC") end
56 }
57 end
58 end
60 ui.filters{
61 label = _"Change order",
62 selector = members_selector,
63 filter,
64 content = function()
65 ui.paginate{
66 selector = members_selector,
67 per_page = 100,
68 content = function()
69 ui.container{
70 attr = { class = "member_list" },
71 content = function()
72 local members = members_selector:exec()
74 for i, member in ipairs(members) do
75 execute.view{
76 module = "member",
77 view = "_show_thumb",
78 params = {
79 member = member,
80 initiative = initiative,
81 issue = issue,
82 trustee = trustee,
83 initiator = initiator
84 }
85 }
86 end
89 end
90 }
91 slot.put('<br style="clear: left;" />')
92 end
93 }
94 end
95 }

Impressum / About Us