liquid_feedback_frontend
changeset 459:b918d30f9f3c
Show only issues the member is interested in at his member page
author | bsw |
---|---|
date | Mon Mar 12 20:28:18 2012 +0100 (2012-03-12) |
parents | 0e25d0459b5f |
children | 9ac37f48092e |
files | app/main/issue/_filters.lua app/main/issue/_list.lua app/main/member/show_tab.lua |
line diff
1.1 --- a/app/main/issue/_filters.lua Mon Mar 12 20:27:31 2012 +0100 1.2 +++ b/app/main/issue/_filters.lua Mon Mar 12 20:28:18 2012 +0100 1.3 @@ -1,4 +1,5 @@ 1.4 local member = param.get("member", "table") 1.5 +local for_member = param.get("for_member", "table") 1.6 local state = param.get("state") 1.7 local for_unit = param.get("for_unit", atom.boolean) 1.8 local for_area = param.get("for_area", atom.boolean) 1.9 @@ -9,43 +10,45 @@ 1.10 local filter = { 1.11 name = "filter_interest", 1.12 } 1.13 - if not for_unit and not for_area then 1.14 - filter[#filter+1] = { 1.15 - name = "any", 1.16 - label = _"All units", 1.17 - selector_modifier = function() end 1.18 - } 1.19 + if not for_member then 1.20 + if not for_unit and not for_area then 1.21 + filter[#filter+1] = { 1.22 + name = "any", 1.23 + label = _"All units", 1.24 + selector_modifier = function() end 1.25 + } 1.26 + filter[#filter+1] = { 1.27 + name = "unit", 1.28 + label = _"My units", 1.29 + selector_modifier = function(selector) 1.30 + selector:join("area", nil, "area.id = issue.area_id") 1.31 + selector:join("privilege", nil, { "privilege.unit_id = area.unit_id AND privilege.member_id = ? AND privilege.voting_right", member.id }) 1.32 + end 1.33 + } 1.34 + end 1.35 + if for_unit and not for_area then 1.36 filter[#filter+1] = { 1.37 - name = "unit", 1.38 - label = _"My units", 1.39 - selector_modifier = function(selector) 1.40 - selector:join("area", nil, "area.id = issue.area_id") 1.41 - selector:join("privilege", nil, { "privilege.unit_id = area.unit_id AND privilege.member_id = ? AND privilege.voting_right", member.id }) 1.42 - end 1.43 - } 1.44 - end 1.45 - if for_unit and not for_area then 1.46 - filter[#filter+1] = { 1.47 - name = "any", 1.48 - label = _"All areas", 1.49 - selector_modifier = function() end 1.50 - } 1.51 - end 1.52 - if not for_area then 1.53 + name = "any", 1.54 + label = _"All areas", 1.55 + selector_modifier = function() end 1.56 + } 1.57 + end 1.58 + if not for_area then 1.59 + filter[#filter+1] = { 1.60 + name = "area", 1.61 + label = _"My areas", 1.62 + selector_modifier = function(selector) 1.63 + selector:join("membership", nil, { "membership.area_id = issue.area_id AND membership.member_id = ?", member.id }) 1.64 + end 1.65 + } 1.66 + end 1.67 + if for_area then 1.68 filter[#filter+1] = { 1.69 - name = "area", 1.70 - label = _"My areas", 1.71 - selector_modifier = function(selector) 1.72 - selector:join("membership", nil, { "membership.area_id = issue.area_id AND membership.member_id = ?", member.id }) 1.73 - end 1.74 - } 1.75 - end 1.76 - if for_area then 1.77 - filter[#filter+1] = { 1.78 - name = "any", 1.79 - label = _"All issues", 1.80 - selector_modifier = function() end 1.81 - } 1.82 + name = "any", 1.83 + label = _"All issues", 1.84 + selector_modifier = function() end 1.85 + } 1.86 + end 1.87 end 1.88 filter[#filter+1] = { 1.89 name = "issue",
2.1 --- a/app/main/issue/_list.lua Mon Mar 12 20:27:31 2012 +0100 2.2 +++ b/app/main/issue/_list.lua Mon Mar 12 20:28:18 2012 +0100 2.3 @@ -1,5 +1,6 @@ 2.4 local issues_selector = param.get("issues_selector", "table") 2.5 -local for_member = param.get("for_member", "table") or app.session.member 2.6 +local member = param.get("for_member", "table") or app.session.member 2.7 +local for_member = param.get("for_member", "table") 2.8 local for_state = param.get("for_state") 2.9 local for_unit = param.get("for_unit", atom.boolean) 2.10 local for_area = param.get("for_area", atom.boolean) 2.11 @@ -31,7 +32,7 @@ 2.12 } 2.13 2.14 local filters = execute.load_chunk{module="issue", chunk="_filters.lua", params = { 2.15 - member = for_member, state = for_state, for_unit = for_unit, for_area = for_area 2.16 + member = member, for_member = for_member, state = for_state, for_unit = for_unit, for_area = for_area 2.17 }} 2.18 2.19 filters.content = function()
3.1 --- a/app/main/member/show_tab.lua Mon Mar 12 20:27:31 2012 +0100 3.2 +++ b/app/main/member/show_tab.lua Mon Mar 12 20:28:18 2012 +0100 3.3 @@ -198,6 +198,7 @@ 3.4 view = "_list", 3.5 params = { 3.6 for_state = "open", 3.7 + for_member = show_as_homepage and app.session.member or member, 3.8 issues_selector = Issue:new_selector() 3.9 :add_where("issue.closed ISNULL") 3.10 :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()") 3.11 @@ -211,6 +212,7 @@ 3.12 view = "_list", 3.13 params = { 3.14 for_state = "closed", 3.15 + for_member = show_as_homepage and app.session.member or member, 3.16 issues_selector = Issue:new_selector() 3.17 :add_where("issue.closed NOTNULL") 3.18 :add_order_by("issue.closed DESC")