diff options
| author | Xinhui | 2016-12-22 14:56:13 +0100 |
|---|---|---|
| committer | Xinhui | 2016-12-22 14:56:13 +0100 |
| commit | fa218d1d95ca05be0c0b663021a2945ecfe6dc5a (patch) | |
| tree | ab37adb35841fdbffa23708478af1bf41bcef15d | |
| parent | ed25e709fc16e5dee5c326eda0479d492f137e35 (diff) | |
| download | chouette-core-fa218d1d95ca05be0c0b663021a2945ecfe6dc5a.tar.bz2 | |
Limite route stop_areas to zdep area type
Refs #2250
| -rw-r--r-- | app/assets/javascripts/es6_browserified/components/BSelect2.js | 3 | ||||
| -rw-r--r-- | app/controllers/autocomplete_stop_areas_controller.rb | 19 |
2 files changed, 10 insertions, 12 deletions
diff --git a/app/assets/javascripts/es6_browserified/components/BSelect2.js b/app/assets/javascripts/es6_browserified/components/BSelect2.js index 0bd53a083..0bf3ebf38 100644 --- a/app/assets/javascripts/es6_browserified/components/BSelect2.js +++ b/app/assets/javascripts/es6_browserified/components/BSelect2.js @@ -92,7 +92,8 @@ class BSelect2 extends React.Component{ delay: '500', data: function(params) { return { - q: params.term + q: params.term, + target_type: 'zdep' }; }, processResults: function(data, params) { diff --git a/app/controllers/autocomplete_stop_areas_controller.rb b/app/controllers/autocomplete_stop_areas_controller.rb index 92d4c631f..cd7123efd 100644 --- a/app/controllers/autocomplete_stop_areas_controller.rb +++ b/app/controllers/autocomplete_stop_areas_controller.rb @@ -14,23 +14,20 @@ class AutocompleteStopAreasController < InheritedResources::Base protected def collection - result = [] - if physical_filter? - result = referential.stop_areas.physical - elsif target_type? && relation_parent? - result = Chouette::StopArea.new( :area_type => params[ :target_type ] ).possible_parents - elsif target_type? && relation_children? - result = Chouette::StopArea.new( :area_type => params[ :target_type ] ).possible_children - else - result = referential.stop_areas + scope = referential.stop_areas + scope = scope.physical if physical_filter? + if target_type? + scope = scope.where(area_type: params[:target_type]) + scope = scope.possible_parents if relation_parent? + scope = scope.possible_parents if relation_children? end args = [].tap{|arg| 3.times{arg << "%#{params[:q]}%"}} - @stop_areas = result.where("name ILIKE ? OR registration_number ILIKE ? OR objectid ILIKE ?", *args).limit(50) + @stop_areas = scope.where("name ILIKE ? OR registration_number ILIKE ? OR objectid ILIKE ?", *args).limit(50) @stop_areas end def target_type? - params.has_key?( :target_type) && params.has_key?( :relation ) + params.has_key?( :target_type) end def relation_parent? |
