liquid_feedback_frontend

view app/main/member/_list.lua @ 238:394e264f9f2b

Revisit fix in commit 221:7db22d3e9eea that prevented voting results to be sorted by delegations
author Ingo Bormuth <mail@ibormuth.de>
date Mon Dec 19 01:53:17 2011 +0100 (2011-12-19)
parents 7db22d3e9eea
children fc14e76afe31
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 label = _"Order by",
22 name = "member_list",
23 {
24 name = "name",
25 label = _"A-Z",
26 selector_modifier = function(selector) selector:add_order_by("name") end
27 },
28 {
29 name = "name_desc",
30 label = _"Z-A",
31 selector_modifier = function(selector) selector:add_order_by("name DESC") end
32 },
33 {
34 name = "newest",
35 label = _"Newest",
36 selector_modifier = function(selector) selector:add_order_by("created DESC, id DESC") end
37 },
38 {
39 name = "oldest",
40 label = _"Oldest",
41 selector_modifier = function(selector) selector:add_order_by("created, id") end
42 },
43 }
45 if initiative then
46 if for_votes then
47 filter[#filter] = {
48 name = "delegations",
49 label = _"Delegations",
50 selector_modifier = function(selector) selector:add_order_by("voter_weight DESC") end
51 }
52 else
53 filter[#filter] = {
54 name = "delegations",
55 label = _"Delegations",
56 selector_modifier = function(selector) selector:add_order_by("weight DESC") end
57 }
58 end
59 end
61 ui.filters{
62 label = _"Change order",
63 selector = members_selector,
64 filter,
65 content = function()
66 ui.paginate{
67 selector = members_selector,
68 per_page = 100,
69 content = function()
70 ui.container{
71 attr = { class = "member_list" },
72 content = function()
73 local members = members_selector:exec()
75 for i, member in ipairs(members) do
76 execute.view{
77 module = "member",
78 view = "_show_thumb",
79 params = {
80 member = member,
81 initiative = initiative,
82 issue = issue,
83 trustee = trustee,
84 initiator = initiator
85 }
86 }
87 end
90 end
91 }
92 slot.put('<br style="clear: left;" />')
93 end
94 }
95 end
96 }

Impressum / About Us