liquid_feedback_frontend

changeset 1570:dcacc0b98d70

Fixed filter for issue list of units without privilege
author bsw
date Wed Nov 11 12:23:48 2020 +0100 (2020-11-11)
parents 32b9e4070777
children 393ee0a63054
files app/main/issue/_filters.lua env/ui/filters.lua
line diff
     1.1 --- a/app/main/issue/_filters.lua	Wed Nov 11 11:11:59 2020 +0100
     1.2 +++ b/app/main/issue/_filters.lua	Wed Nov 11 12:23:48 2020 +0100
     1.3 @@ -5,6 +5,12 @@
     1.4  local member = param.get("member", "table")
     1.5  local phase = request.get_param{ name = "phase" }
     1.6  
     1.7 +local selected_unit_id = config.single_unit_id or request.get_param{ name = "unit" }
     1.8 +if selected_unit_id == "all" then
     1.9 +  selected_unit_id = nil 
    1.10 +end
    1.11 +local selected_unit = Unit:by_id(selected_unit_id)
    1.12 +
    1.13  local filters = {}
    1.14  
    1.15  local admission_order_field = "filter_issue_order.order_in_unit"
    1.16 @@ -66,7 +72,12 @@
    1.17        end
    1.18      }
    1.19  
    1.20 +    local selected_unit_found = false
    1.21 +
    1.22      for i, unit in ipairs(units) do
    1.23 +      if selected_unit and unit.id == selected_unit.id then
    1.24 +        selected_unit_found = true
    1.25 +      end
    1.26        filter[#filter+1] = {
    1.27          name = tostring(unit.id),
    1.28          label = unit.name,
    1.29 @@ -75,19 +86,31 @@
    1.30            selector:add_where{ "__filter_area.unit_id = ?", unit.id }
    1.31          end
    1.32        }
    1.33 -      
    1.34      end
    1.35  
    1.36 +    if not selected_unit_found and selected_unit then
    1.37 +      filter[#filter+1] = {
    1.38 +        name = tostring(selected_unit.id),
    1.39 +        label = selected_unit.name,
    1.40 +        selector_modifier = function(selector)
    1.41 +          selector:join("area", "__filter_area", "__filter_area.id = issue.area_id AND __filter_area.active")
    1.42 +          selector:add_where{ "__filter_area.unit_id = ?", selected_unit.id }
    1.43 +        end
    1.44 +      }
    1.45 +    end
    1.46 +
    1.47 +--[[
    1.48 +    filter.selector_modifier = function(selector)
    1.49 +      selector:join("area", "__filter_area", "__filter_area.id = issue.area_id AND __filter_area.active")
    1.50 +      selector:add_where{ "__filter_area.unit_id = ?", 81 }
    1.51 +    end
    1.52 +--]]
    1.53 +
    1.54      filters[#filters+1] = filter
    1.55  
    1.56    end
    1.57    
    1.58    -- areas
    1.59 -  local selected_unit_id = config.single_unit_id or request.get_param{ name = "unit" }
    1.60 -  if selected_unit_id == "all" then
    1.61 -    selected_unit_id = nil 
    1.62 -  end
    1.63 -  local selected_unit = Unit:by_id(selected_unit_id)
    1.64  
    1.65    if not config.single_area_id and selected_unit then
    1.66    
     2.1 --- a/env/ui/filters.lua	Wed Nov 11 11:11:59 2020 +0100
     2.2 +++ b/env/ui/filters.lua	Wed Nov 11 12:23:48 2020 +0100
     2.3 @@ -15,6 +15,9 @@
     2.4        end
     2.5        for idx, filter in ipairs(args) do
     2.6          local filter_name = filter.name or "filter"
     2.7 +        if filter.selector_modifier then
     2.8 +          filter.selector_modifier(args.selector)
     2.9 +        end
    2.10          local current_option_name = atom.string:load(request.get_param{ name = filter_name })
    2.11          if not current_option_name then
    2.12            current_option_name = param.get(filter_name)

Impressum / About Us