liquid_feedback_frontend

annotate app/main/member/_list.lua @ 1072:ba51e72830e6

Added OpenLDAP license to LICENSE file
author bsw
date Fri Jul 18 23:12:14 2014 +0200 (2014-07-18)
parents 701a5cf6b067
children aba047e2bac4
rev   line source
bsw/jbe@0 1 local members_selector = param.get("members_selector", "table")
bsw@286 2 members_selector:add_where("member.activated NOTNULL")
bsw@286 3
bsw@3 4 local initiative = param.get("initiative", "table")
bsw@3 5 local issue = param.get("issue", "table")
bsw@3 6 local trustee = param.get("trustee", "table")
bsw@10 7 local initiator = param.get("initiator", "table")
bsw@190 8 local for_votes = param.get("for_votes", atom.boolean)
bsw@1045 9 local no_filter = param.get ( "no_filter", atom.boolean )
bsw@1045 10 local no_paginate = param.get ( "no_paginate", atom.boolean )
bsw@183 11
bsw@720 12 local paginator_name = param.get("paginator_name")
bsw@720 13
bsw@1045 14 local member_class = param.get("member_class")
bsw@1045 15
bsw@177 16 if initiative or issue then
bsw@190 17 if for_votes then
bsw@190 18 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@1045 19 members_selector:add_field("member.id = ANY(_member_list__delegating_voter.delegate_member_ids)", "in_delegation_chain")
bsw@190 20 else
bsw@190 21 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@1045 22 members_selector:add_field("member.id = ANY(_member_list__delegating_interest.delegate_member_ids)", "in_delegation_chain")
bsw@190 23 end
bsw@177 24 end
bsw@177 25
bsw/jbe@19 26 ui.add_partial_param_names{ "member_list" }
bsw/jbe@19 27
bsw@452 28 local filter = { name = "member_list" }
bsw@3 29
bsw@1045 30 filter[#filter+1] = {
bsw@1045 31 name = "last_activity",
bsw@1045 32 label = _"Latest activity",
bsw@1045 33 selector_modifier = function(selector) selector:add_order_by("last_login DESC NULLS LAST, id DESC") end
bsw@1045 34 }
bsw@452 35 filter[#filter+1] = {
bsw@452 36 name = "newest",
bsw@452 37 label = _"Newest",
bsw@452 38 selector_modifier = function(selector) selector:add_order_by("activated DESC, id DESC") end
bsw@452 39 }
bsw@452 40 filter[#filter+1] = {
bsw@452 41 name = "oldest",
bsw@452 42 label = _"Oldest",
bsw@452 43 selector_modifier = function(selector) selector:add_order_by("activated, id") end
bsw@452 44 }
bsw@452 45
bsw@452 46 filter[#filter+1] = {
bsw@452 47 name = "name",
bsw@452 48 label = _"A-Z",
bsw@452 49 selector_modifier = function(selector) selector:add_order_by("name") end
bsw@452 50 }
bsw@452 51 filter[#filter+1] = {
bsw@452 52 name = "name_desc",
bsw@452 53 label = _"Z-A",
bsw@452 54 selector_modifier = function(selector) selector:add_order_by("name DESC") end
bsw@452 55 }
bsw@452 56
bsw@718 57 if issue or initiative then
bsw@1045 58 no_filter = true
bsw@718 59 if for_votes then
bsw@718 60 members_selector:add_order_by("voter_weight DESC, name, id")
bsw@718 61 else
bsw@718 62 members_selector:add_order_by("weight DESC, name, id")
bsw@718 63 end
bsw@718 64 end
bsw@718 65
bsw@3 66
bsw@1045 67 function list_members()
bsw@1045 68 local ui_paginate = ui.paginate
bsw@1045 69 if no_paginate then
bsw@1045 70 ui_paginate = function (args) args.content() end
bsw@1045 71 end
bsw@1045 72 ui_paginate{
bsw@1045 73 name = paginator_name,
bsw@1045 74 anchor = paginator_name,
bsw@1045 75 selector = members_selector,
bsw@1045 76 per_page = 50,
bsw@1045 77 content = function()
bsw@1045 78 ui.container{
bsw@1045 79 attr = { class = "member_list" },
bsw@1045 80 content = function()
bsw@1045 81 local members = members_selector:exec()
bsw@1045 82
bsw@1045 83 for i, member in ipairs(members) do
bsw@1045 84 ui.sectionRow( function()
bsw@2 85 execute.view{
bsw@2 86 module = "member",
bsw@2 87 view = "_show_thumb",
bsw@10 88 params = {
bsw@1045 89 class = member_class,
bsw@10 90 member = member,
bsw@10 91 initiative = initiative,
bsw@10 92 issue = issue,
bsw@10 93 trustee = trustee,
bsw@10 94 initiator = initiator
bsw@10 95 }
bsw/jbe@0 96 }
bsw@1045 97 end )
bsw@1045 98 end
bsw/jbe@19 99
bsw@177 100
bsw@1045 101 end
bsw@1045 102 }
bsw@1045 103 end
bsw@1045 104 }
bsw@1045 105 end
bsw@1045 106
bsw@1045 107
bsw@1045 108 if no_filter then
bsw@1045 109 list_members()
bsw@1045 110 else
bsw@1045 111 ui.filters {
bsw@1045 112 label = _"Change order",
bsw@1045 113 selector = members_selector,
bsw@1045 114 content = list_members,
bsw@1045 115 filter
bsw@1045 116 }
bsw@1045 117 end

Impressum / About Us