liquid_feedback_frontend
changeset 137:43ac94c7575b
add potential/full support filter into supported initiatives tab
fixes bug #47
fixes bug #47
author | Daniel Poelzleithner <poelzi@poelzi.org> |
---|---|
date | Wed Oct 06 13:05:30 2010 +0200 (2010-10-06) |
parents | 166fd10c7e81 |
children | 7e7d629390d5 |
files | app/main/member/_list_supported_initiatives.lua app/main/member/show_tab.lua |
line diff
1.1 --- a/app/main/member/_list_supported_initiatives.lua Tue Oct 05 21:51:59 2010 +0200 1.2 +++ b/app/main/member/_list_supported_initiatives.lua Wed Oct 06 13:05:30 2010 +0200 1.3 @@ -1,9 +1,7 @@ 1.4 local initiatives_selector = param.get("initiatives_selector", "table") 1.5 +local member = param.get("member", "table") 1.6 1.7 -ui.filters{ 1.8 - label = _"Filter", 1.9 - name = "filter_voting", 1.10 - selector = initiatives_selector, 1.11 +local filters = { 1.12 { 1.13 label = _"Filter", 1.14 { 1.15 @@ -61,12 +59,48 @@ 1.16 label = _"Any", 1.17 selector_modifier = function(selector) end 1.18 }, 1.19 - }, 1.20 - content = function() 1.21 + } 1.22 +} 1.23 + 1.24 + 1.25 +if member then 1.26 + filters[#filters+1] = { 1.27 + label = _"Support", 1.28 + name = "support", 1.29 + { 1.30 + name = "any", 1.31 + label = _"Any", 1.32 + selector_modifier = function(selector) 1.33 + end 1.34 + }, 1.35 + { 1.36 + name = "potential", 1.37 + label = _"Potential supported", 1.38 + selector_modifier = function(selector) 1.39 + -- not even having is_potential_supporter is working here :-( hopefully the optimizer will work it out... 1.40 + selector:add_where({"EXISTS(SELECT 1 FROM opinion WHERE opinion.initiative_id = initiative.id AND opinion.member_id = ? AND ((opinion.degree = 2 AND NOT fulfilled) OR (opinion.degree = -2 AND fulfilled)))", member.id }) 1.41 + end 1.42 + }, 1.43 + { 1.44 + name = "supporter", 1.45 + label = _"Supporter", 1.46 + selector_modifier = function(selector) 1.47 + selector:add_where({"NOT EXISTS(SELECT 1 FROM opinion WHERE opinion.initiative_id = initiative.id AND opinion.member_id = ? AND ((opinion.degree = 2 AND NOT fulfilled) OR (opinion.degree = -2 AND fulfilled)))", member.id }) 1.48 + end 1.49 + }, 1.50 + } 1.51 +end 1.52 + 1.53 +filters.label = _"Filter" 1.54 +filters.name = "filter_voting" 1.55 +filters.selector = initiatives_selector 1.56 +filters.content = function() 1.57 execute.view{ 1.58 module = "initiative", 1.59 view = "_list", 1.60 params = { initiatives_selector = initiatives_selector } 1.61 } 1.62 end 1.63 -} 1.64 + 1.65 + 1.66 +ui.filters(filters)
2.1 --- a/app/main/member/show_tab.lua Tue Oct 05 21:51:59 2010 +0200 2.2 +++ b/app/main/member/show_tab.lua Wed Oct 06 13:05:30 2010 +0200 2.3 @@ -159,7 +159,8 @@ 2.4 icon = { static = "icons/16/thumb_up_green.png" }, 2.5 module = "member", 2.6 view = "_list_supported_initiatives", 2.7 - params = { initiatives_selector = supported_initiatives_selector }, 2.8 + params = { initiatives_selector = supported_initiatives_selector, 2.9 + member = member }, 2.10 } 2.11 2.12 local initiated_initiatives_selector = member:get_reference_selector("initiated_initiatives"):add_where("initiator.accepted = true") 2.13 @@ -169,7 +170,8 @@ 2.14 icon = { static = "icons/16/user_edit.png" }, 2.15 module = "member", 2.16 view = "_list_supported_initiatives", 2.17 - params = { initiatives_selector = initiated_initiatives_selector }, 2.18 + params = { initiatives_selector = initiated_initiatives_selector, 2.19 + member = member}, 2.20 } 2.21 2.22 local incoming_delegations_selector = member:get_reference_selector("incoming_delegations")