# HG changeset patch # User Daniel Poelzleithner # Date 1286363130 -7200 # Node ID 43ac94c7575bf5ce8f949532cb318725b1b88a9a # Parent 166fd10c7e81e4e8b13889f0e7e447f3236b8cda add potential/full support filter into supported initiatives tab fixes bug #47 diff -r 166fd10c7e81 -r 43ac94c7575b app/main/member/_list_supported_initiatives.lua --- a/app/main/member/_list_supported_initiatives.lua Tue Oct 05 21:51:59 2010 +0200 +++ b/app/main/member/_list_supported_initiatives.lua Wed Oct 06 13:05:30 2010 +0200 @@ -1,9 +1,7 @@ local initiatives_selector = param.get("initiatives_selector", "table") +local member = param.get("member", "table") -ui.filters{ - label = _"Filter", - name = "filter_voting", - selector = initiatives_selector, +local filters = { { label = _"Filter", { @@ -61,12 +59,48 @@ label = _"Any", selector_modifier = function(selector) end }, - }, - content = function() + } +} + + +if member then + filters[#filters+1] = { + label = _"Support", + name = "support", + { + name = "any", + label = _"Any", + selector_modifier = function(selector) + end + }, + { + name = "potential", + label = _"Potential supported", + selector_modifier = function(selector) + -- not even having is_potential_supporter is working here :-( hopefully the optimizer will work it out... + 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 }) + end + }, + { + name = "supporter", + label = _"Supporter", + selector_modifier = function(selector) + 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 }) + end + }, + } +end + +filters.label = _"Filter" +filters.name = "filter_voting" +filters.selector = initiatives_selector +filters.content = function() execute.view{ module = "initiative", view = "_list", params = { initiatives_selector = initiatives_selector } } end -} + + +ui.filters(filters) diff -r 166fd10c7e81 -r 43ac94c7575b app/main/member/show_tab.lua --- a/app/main/member/show_tab.lua Tue Oct 05 21:51:59 2010 +0200 +++ b/app/main/member/show_tab.lua Wed Oct 06 13:05:30 2010 +0200 @@ -159,7 +159,8 @@ icon = { static = "icons/16/thumb_up_green.png" }, module = "member", view = "_list_supported_initiatives", - params = { initiatives_selector = supported_initiatives_selector }, + params = { initiatives_selector = supported_initiatives_selector, + member = member }, } local initiated_initiatives_selector = member:get_reference_selector("initiated_initiatives"):add_where("initiator.accepted = true") @@ -169,7 +170,8 @@ icon = { static = "icons/16/user_edit.png" }, module = "member", view = "_list_supported_initiatives", - params = { initiatives_selector = initiated_initiatives_selector }, + params = { initiatives_selector = initiated_initiatives_selector, + member = member}, } local incoming_delegations_selector = member:get_reference_selector("incoming_delegations")