liquid_feedback_frontend

changeset 1080:cb9e75ac968f

Better ordering of interested members
author bsw
date Wed Jul 23 20:47:57 2014 +0200 (2014-07-23)
parents 3b33eb84288e
children 86073b9999dc
files app/main/issue/_sidebar_members.lua app/main/member/_list.lua static/lf3.css static/lf3.less
line diff
     1.1 --- a/app/main/issue/_sidebar_members.lua	Wed Jul 23 19:38:15 2014 +0200
     1.2 +++ b/app/main/issue/_sidebar_members.lua	Wed Jul 23 20:47:57 2014 +0200
     1.3 @@ -4,6 +4,7 @@
     1.4  if app.session:has_access("all_pseudonymous") then
     1.5    ui.sidebar ( "tab-members", function ()
     1.6  
     1.7 +    ui.tag { tag = "a", attr = { name = "members" }, content = "" }
     1.8      local text = _"Interested members"
     1.9      if issue.state == "finished_with_winner" or issue.state == "finished_without_winner" then
    1.10        text = _"Voters"
    1.11 @@ -53,7 +54,7 @@
    1.12          issue = issue,
    1.13          initiative = initiative,
    1.14          members_selector = interested_members_selector,
    1.15 -        no_filter = true,
    1.16 +        paginator_name = "members",
    1.17          member_class = "sidebarRow sidebarRowNarrow",
    1.18          for_votes = issue.state == "finished_with_winner" or issue.state == "finished_without_winner"
    1.19        }
     2.1 --- a/app/main/member/_list.lua	Wed Jul 23 19:38:15 2014 +0200
     2.2 +++ b/app/main/member/_list.lua	Wed Jul 23 20:47:57 2014 +0200
     2.3 @@ -25,44 +25,53 @@
     2.4  
     2.5  ui.add_partial_param_names{ "member_list" }
     2.6  
     2.7 -local filter = { name = "member_list" }
     2.8 +local filter = { name = "member_filter" }
     2.9  
    2.10 -filter[#filter+1] = {
    2.11 -  name = "last_activity",
    2.12 -  label = _"Latest activity",
    2.13 -  selector_modifier = function(selector) selector:add_order_by("last_login DESC NULLS LAST, id DESC") end
    2.14 -}
    2.15 -filter[#filter+1] = {
    2.16 -  name = "newest",
    2.17 -  label = _"Newest",
    2.18 -  selector_modifier = function(selector) selector:add_order_by("activated DESC, id DESC") end
    2.19 -}
    2.20 -filter[#filter+1] = {
    2.21 -  name = "oldest",
    2.22 -  label = _"Oldest",
    2.23 -  selector_modifier = function(selector) selector:add_order_by("activated, id") end
    2.24 -}
    2.25 +if issue or initiative then
    2.26 +  filter[#filter+1] = {
    2.27 +    name = "weight",
    2.28 +    label = _"ordered by delegation count",
    2.29 +    selector_modifier = function(members_selector) 
    2.30 +      if for_votes then
    2.31 +          members_selector:add_order_by("voter_weight DESC")
    2.32 +      else
    2.33 +          members_selector:add_order_by("weight DESC")
    2.34 +      end
    2.35 +      -- pseudo random ordering of members with same weight
    2.36 +      -- (using 45th and 47th fibonacci number)
    2.37 +      members_selector:add_order_by("(issue.id # member.id) * 1134903170::INT8 % 2971215073")
    2.38 +      members_selector:add_order_by("member.id")
    2.39 +    end
    2.40 +  }
    2.41 +else
    2.42 +  filter[#filter+1] = {
    2.43 +    name = "last_activity",
    2.44 +    label = _"by latest activity",
    2.45 +    selector_modifier = function(selector) selector:add_order_by("last_login DESC NULLS LAST, id DESC") end
    2.46 +  }
    2.47 +  filter[#filter+1] = {
    2.48 +    name = "newest",
    2.49 +    label = _"newest first",
    2.50 +    selector_modifier = function(selector) selector:add_order_by("activated DESC, id DESC") end
    2.51 +  }
    2.52 +  filter[#filter+1] = {
    2.53 +    name = "oldest",
    2.54 +    label = _"oldest first",
    2.55 +    selector_modifier = function(selector) selector:add_order_by("activated, id") end
    2.56 +  }
    2.57 +end
    2.58  
    2.59  filter[#filter+1] = {
    2.60    name = "name",
    2.61 -  label = _"A-Z",
    2.62 +  label = _"by A-Z",
    2.63    selector_modifier = function(selector) selector:add_order_by("name") end
    2.64  }
    2.65  filter[#filter+1] = {
    2.66    name = "name_desc",
    2.67 -  label = _"Z-A",
    2.68 +  label = _"by Z-A",
    2.69    selector_modifier = function(selector) selector:add_order_by("name DESC") end
    2.70  }
    2.71  
    2.72 -if issue or initiative then
    2.73 -  no_filter = true
    2.74 -  if for_votes then
    2.75 -      members_selector:add_order_by("voter_weight DESC, name, id")
    2.76 -  else
    2.77 -      members_selector:add_order_by("weight DESC, name, id")
    2.78 -  end
    2.79 -end
    2.80 -
    2.81  
    2.82  function list_members()
    2.83    local ui_paginate = ui.paginate
     3.1 --- a/static/lf3.css	Wed Jul 23 19:38:15 2014 +0200
     3.2 +++ b/static/lf3.css	Wed Jul 23 20:47:57 2014 +0200
     3.3 @@ -455,17 +455,23 @@
     3.4  .sidebarSection .sidebarHead .icon24 {
     3.5    margin-top: -3.6px;
     3.6  }
     3.7 -.sidebarSection .sidebarRow {
     3.8 +.sidebarSection .sidebarRow,
     3.9 +.sidebarSection .ui_filter_head,
    3.10 +.sidebarSection .ui_paginate_foot {
    3.11    clear: right;
    3.12    display: block;
    3.13 -  border-top: 1px solid #aaaaaa;
    3.14    padding: 4.5px 9px;
    3.15    min-height: 20px;
    3.16  }
    3.17 +.sidebarSection .sidebarRow {
    3.18 +  border-top: 1px solid #aaaaaa;
    3.19 +}
    3.20  .sidebarSection .sidebarRow.highlighted {
    3.21    background-color: #e7f0ff;
    3.22  }
    3.23 -.sidebarSection .sidebarRow.sidebarRowNarrow {
    3.24 +.sidebarSection .sidebarRow.sidebarRowNarrow,
    3.25 +.sidebarSection .ui_filter_head,
    3.26 +.sidebarSection .ui_paginate_foot {
    3.27    padding: 2.25px 9px;
    3.28  }
    3.29  .sidebarSection .sidebarRow.moreLink {
    3.30 @@ -1066,7 +1072,7 @@
    3.31    border-top: 3px solid #397ab6;
    3.32  }
    3.33  .suggestions .suggestion.folded .suggestion-text {
    3.34 -  max-height: 150px;
    3.35 +  height: 150px;
    3.36    overflow: hidden;
    3.37  }
    3.38  .suggestions .suggestion.folded .suggestion-more {
     4.1 --- a/static/lf3.less	Wed Jul 23 19:38:15 2014 +0200
     4.2 +++ b/static/lf3.less	Wed Jul 23 20:47:57 2014 +0200
     4.3 @@ -559,18 +559,22 @@
     4.4      }
     4.5    }
     4.6  
     4.7 -  .sidebarRow {
     4.8 +  .sidebarRow, .ui_filter_head, .ui_paginate_foot {
     4.9      clear: right;
    4.10      display: block;
    4.11 -    border-top: 1px solid @main-seperator-color;
    4.12      padding: @pad/2 @pad;
    4.13      min-height: 20px;
    4.14    }
    4.15 +
    4.16 +  .sidebarRow {
    4.17 +    border-top: 1px solid @main-seperator-color;
    4.18 +  }
    4.19 +  
    4.20    .sidebarRow.highlighted {
    4.21      background-color: @main-highlight-bg-color;
    4.22    }
    4.23  
    4.24 -  .sidebarRow.sidebarRowNarrow {
    4.25 +  .sidebarRow.sidebarRowNarrow, .ui_filter_head, .ui_paginate_foot{
    4.26      padding: @pad / 4 @pad;
    4.27    }
    4.28  

Impressum / About Us