liquid_feedback_frontend

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

Impressum / About Us