liquid_feedback_frontend
view app/main/member/_list.lua @ 413:336476245f3f
Added tag v2.beta2 for changeset 371e690018ea
| author | jbe | 
|---|---|
| date | Sat Mar 10 13:54:14 2012 +0100 (2012-03-10) | 
| parents | 805bb2f70b0a | 
| children | c3b3a932f81f | 
 line source
     1 local members_selector = param.get("members_selector", "table")
     2 members_selector:add_where("member.activated NOTNULL")
     4 local initiative = param.get("initiative", "table")
     5 local issue = param.get("issue", "table")
     6 local trustee = param.get("trustee", "table")
     7 local initiator = param.get("initiator", "table")
     8 local for_votes = param.get("for_votes", atom.boolean)
    10 if initiative or issue then
    11   if for_votes then
    12     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 })
    13     members_selector:add_field("_member_list__delegating_voter.delegate_member_ids", "delegate_member_ids")
    14   else
    15     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 })
    16     members_selector:add_field("_member_list__delegating_interest.delegate_member_ids", "delegate_member_ids")
    17   end
    18 end
    20 ui.add_partial_param_names{ "member_list" }
    22 local filter = {
    23   name = "member_list",
    24   {
    25     name = "name",
    26     label = _"A-Z",
    27     selector_modifier = function(selector) selector:add_order_by("name") end
    28   },
    29   {
    30     name = "name_desc",
    31     label = _"Z-A",
    32     selector_modifier = function(selector) selector:add_order_by("name DESC") end
    33   },
    34   {
    35     name = "newest",
    36     label = _"Newest",
    37     selector_modifier = function(selector) selector:add_order_by("activated DESC, id DESC") end
    38   },
    39   {
    40     name = "oldest",
    41     label = _"Oldest",
    42     selector_modifier = function(selector) selector:add_order_by("activated, id") end
    43   },
    44 }
    46 if initiative then
    47   if for_votes then
    48     filter[#filter] = {
    49       name = "delegations",
    50       label = _"Delegations",
    51       selector_modifier = function(selector) selector:add_order_by("voter_weight DESC") end
    52     }
    53   else
    54     filter[#filter] = {
    55       name = "delegations",
    56       label = _"Delegations",
    57       selector_modifier = function(selector) selector:add_order_by("weight DESC") end
    58     }
    59   end
    60 end
    62 ui.filters{
    63   label = _"Change order",
    64   selector = members_selector,
    65   filter,
    66   content = function()
    67     ui.paginate{
    68       selector = members_selector,
    69       per_page = 100,
    70       content = function() 
    71         ui.container{
    72           attr = { class = "member_list" },
    73           content = function()
    74             local members = members_selector:exec()
    76             for i, member in ipairs(members) do
    77               execute.view{
    78                 module = "member",
    79                 view = "_show_thumb",
    80                 params = {
    81                   member = member,
    82                   initiative = initiative,
    83                   issue = issue,
    84                   trustee = trustee,
    85                   initiator = initiator
    86                 }
    87               }
    88             end
    91           end
    92         }
    93         slot.put('<br style="clear: left;" />')
    94       end
    95     }
    96   end
    97 }
