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