# HG changeset patch # User bsw # Date 1331580498 -3600 # Node ID b918d30f9f3cc6ba553273c8b262fe7a5bc54b11 # Parent 0e25d0459b5f8cab8e30e4e08bbd1c188d89244f Show only issues the member is interested in at his member page diff -r 0e25d0459b5f -r b918d30f9f3c app/main/issue/_filters.lua --- a/app/main/issue/_filters.lua Mon Mar 12 20:27:31 2012 +0100 +++ b/app/main/issue/_filters.lua Mon Mar 12 20:28:18 2012 +0100 @@ -1,4 +1,5 @@ local member = param.get("member", "table") +local for_member = param.get("for_member", "table") local state = param.get("state") local for_unit = param.get("for_unit", atom.boolean) local for_area = param.get("for_area", atom.boolean) @@ -9,43 +10,45 @@ local filter = { name = "filter_interest", } - if not for_unit and not for_area then - filter[#filter+1] = { - name = "any", - label = _"All units", - selector_modifier = function() end - } + if not for_member then + if not for_unit and not for_area then + filter[#filter+1] = { + name = "any", + label = _"All units", + selector_modifier = function() end + } + filter[#filter+1] = { + name = "unit", + label = _"My units", + selector_modifier = function(selector) + selector:join("area", nil, "area.id = issue.area_id") + selector:join("privilege", nil, { "privilege.unit_id = area.unit_id AND privilege.member_id = ? AND privilege.voting_right", member.id }) + end + } + end + if for_unit and not for_area then filter[#filter+1] = { - name = "unit", - label = _"My units", - selector_modifier = function(selector) - selector:join("area", nil, "area.id = issue.area_id") - selector:join("privilege", nil, { "privilege.unit_id = area.unit_id AND privilege.member_id = ? AND privilege.voting_right", member.id }) - end - } - end - if for_unit and not for_area then - filter[#filter+1] = { - name = "any", - label = _"All areas", - selector_modifier = function() end - } - end - if not for_area then + name = "any", + label = _"All areas", + selector_modifier = function() end + } + end + if not for_area then + filter[#filter+1] = { + name = "area", + label = _"My areas", + selector_modifier = function(selector) + selector:join("membership", nil, { "membership.area_id = issue.area_id AND membership.member_id = ?", member.id }) + end + } + end + if for_area then filter[#filter+1] = { - name = "area", - label = _"My areas", - selector_modifier = function(selector) - selector:join("membership", nil, { "membership.area_id = issue.area_id AND membership.member_id = ?", member.id }) - end - } - end - if for_area then - filter[#filter+1] = { - name = "any", - label = _"All issues", - selector_modifier = function() end - } + name = "any", + label = _"All issues", + selector_modifier = function() end + } + end end filter[#filter+1] = { name = "issue", diff -r 0e25d0459b5f -r b918d30f9f3c app/main/issue/_list.lua --- a/app/main/issue/_list.lua Mon Mar 12 20:27:31 2012 +0100 +++ b/app/main/issue/_list.lua Mon Mar 12 20:28:18 2012 +0100 @@ -1,5 +1,6 @@ local issues_selector = param.get("issues_selector", "table") -local for_member = param.get("for_member", "table") or app.session.member +local member = param.get("for_member", "table") or app.session.member +local for_member = param.get("for_member", "table") local for_state = param.get("for_state") local for_unit = param.get("for_unit", atom.boolean) local for_area = param.get("for_area", atom.boolean) @@ -31,7 +32,7 @@ } local filters = execute.load_chunk{module="issue", chunk="_filters.lua", params = { - member = for_member, state = for_state, for_unit = for_unit, for_area = for_area + member = member, for_member = for_member, state = for_state, for_unit = for_unit, for_area = for_area }} filters.content = function() diff -r 0e25d0459b5f -r b918d30f9f3c app/main/member/show_tab.lua --- a/app/main/member/show_tab.lua Mon Mar 12 20:27:31 2012 +0100 +++ b/app/main/member/show_tab.lua Mon Mar 12 20:28:18 2012 +0100 @@ -198,6 +198,7 @@ view = "_list", params = { for_state = "open", + for_member = show_as_homepage and app.session.member or member, issues_selector = Issue:new_selector() :add_where("issue.closed ISNULL") :add_order_by("coalesce(issue.fully_frozen + issue.voting_time, issue.half_frozen + issue.verification_time, issue.accepted + issue.discussion_time, issue.created + issue.admission_time) - now()") @@ -211,6 +212,7 @@ view = "_list", params = { for_state = "closed", + for_member = show_as_homepage and app.session.member or member, issues_selector = Issue:new_selector() :add_where("issue.closed NOTNULL") :add_order_by("issue.closed DESC")