bsw/jbe@0: local members_selector = param.get("members_selector", "table") bsw@286: members_selector:add_where("member.activated NOTNULL") bsw@286: bsw@3: local initiative = param.get("initiative", "table") bsw@3: local issue = param.get("issue", "table") bsw@3: local trustee = param.get("trustee", "table") bsw@10: local initiator = param.get("initiator", "table") bsw@190: local for_votes = param.get("for_votes", atom.boolean) bsw@183: bsw@177: if initiative or issue then bsw@190: if for_votes then bsw@190: 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: members_selector:add_field("_member_list__delegating_voter.delegate_member_ids", "delegate_member_ids") bsw@190: else bsw@190: 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: members_selector:add_field("_member_list__delegating_interest.delegate_member_ids", "delegate_member_ids") bsw@190: end bsw@177: end bsw@177: bsw/jbe@19: ui.add_partial_param_names{ "member_list" } bsw/jbe@19: bsw@452: local filter = { name = "member_list" } bsw@3: bsw@452: if issue or initiative then mail@238: if for_votes then bsw@452: filter[#filter+1] = { mail@238: name = "delegations", mail@238: label = _"Delegations", mail@238: selector_modifier = function(selector) selector:add_order_by("voter_weight DESC") end mail@238: } mail@238: else bsw@452: filter[#filter+1] = { mail@238: name = "delegations", mail@238: label = _"Delegations", mail@238: selector_modifier = function(selector) selector:add_order_by("weight DESC") end mail@238: } mail@238: end bsw@3: end bsw/jbe@0: bsw@452: filter[#filter+1] = { bsw@452: name = "newest", bsw@452: label = _"Newest", bsw@452: selector_modifier = function(selector) selector:add_order_by("activated DESC, id DESC") end bsw@452: } bsw@452: filter[#filter+1] = { bsw@452: name = "oldest", bsw@452: label = _"Oldest", bsw@452: selector_modifier = function(selector) selector:add_order_by("activated, id") end bsw@452: } bsw@452: bsw@452: filter[#filter+1] = { bsw@452: name = "name", bsw@452: label = _"A-Z", bsw@452: selector_modifier = function(selector) selector:add_order_by("name") end bsw@452: } bsw@452: filter[#filter+1] = { bsw@452: name = "name_desc", bsw@452: label = _"Z-A", bsw@452: selector_modifier = function(selector) selector:add_order_by("name DESC") end bsw@452: } bsw@452: bsw/jbe@19: ui.filters{ bsw/jbe@19: label = _"Change order", bsw/jbe@0: selector = members_selector, bsw/jbe@19: filter, bsw@2: content = function() bsw@2: ui.paginate{ bsw@2: selector = members_selector, bsw@2: per_page = 100, bsw@2: content = function() bsw@2: ui.container{ bsw@2: attr = { class = "member_list" }, bsw@2: content = function() bsw@3: local members = members_selector:exec() bsw@3: bsw@3: for i, member in ipairs(members) do bsw@2: execute.view{ bsw@2: module = "member", bsw@2: view = "_show_thumb", bsw@10: params = { bsw@10: member = member, bsw@10: initiative = initiative, bsw@10: issue = issue, bsw@10: trustee = trustee, bsw@10: initiator = initiator bsw@10: } bsw/jbe@0: } bsw@2: end bsw/jbe@19: bsw@177: bsw/jbe@0: end bsw/jbe@0: } bsw@3: slot.put('
') bsw@2: end bsw/jbe@0: } bsw/jbe@0: end bsw/jbe@19: }