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")

Impressum / About Us