diff options
| author | Zog | 2018-02-13 14:37:23 +0100 |
|---|---|---|
| committer | Alban Peignier | 2018-02-19 22:29:55 +0100 |
| commit | ba1e18ba0a641d34e6dcc7cba42931b1e5f00d1a (patch) | |
| tree | b12a48b30fd0967f36e7ea7044df60685efccf63 /app/controllers | |
| parent | 688ed83020fc97396382905b1409e2c61159abe3 (diff) | |
| download | chouette-core-ba1e18ba0a641d34e6dcc7cba42931b1e5f00d1a.tar.bz2 | |
Refs #5911 @2h; Better stops filters on ReferentialVJs#index
Diffstat (limited to 'app/controllers')
| -rw-r--r-- | app/controllers/referential_vehicle_journeys_controller.rb | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/app/controllers/referential_vehicle_journeys_controller.rb b/app/controllers/referential_vehicle_journeys_controller.rb index e36ef8153..3f3f3d9e6 100644 --- a/app/controllers/referential_vehicle_journeys_controller.rb +++ b/app/controllers/referential_vehicle_journeys_controller.rb @@ -19,14 +19,16 @@ class ReferentialVehicleJourneysController < ChouetteController @q = @q.with_stop_area_ids(params[:q][:stop_area_ids]) if params[:q] && params[:q][:stop_area_ids] @q = ransack_period_range(scope: @q, error_message: t('vehicle_journeys.errors.purchase_window'), query: :in_purchase_window, prefix: :purchase_window) @q = ransack_period_range(scope: @q, error_message: t('vehicle_journeys.errors.time_table'), query: :with_matching_timetable, prefix: :time_table) + @starting_stop = params[:q] && params[:q][:stop_areas] && params[:q][:stop_areas][:start].present? ? Chouette::StopArea.find(params[:q][:stop_areas][:start]) : nil + @ending_stop = params[:q] && params[:q][:stop_areas] && params[:q][:stop_areas][:end].present? ? Chouette::StopArea.find(params[:q][:stop_areas][:end]) : nil + @q = @q.starting_with(@starting_stop&.id) + @q = @q.ending_with(@ending_stop&.id) @q = @q.ransack(params[:q]) @vehicle_journeys ||= @q.result @vehicle_journeys = parse_order @vehicle_journeys @vehicle_journeys = @vehicle_journeys.paginate page: params[:page], per_page: params[:per_page] || 10 @all_companies = Chouette::Company.where("id IN (#{@referential.vehicle_journeys.select(:company_id).to_sql})").distinct - @all_stop_areas = Chouette::StopArea.where("id IN (#{@referential.vehicle_journeys.joins(:stop_areas).select("stop_areas.id").to_sql})").distinct - stop_area_ids = params[:q].try(:[], :stop_area_ids).try(:select, &:present?) - @filters_stop_areas = Chouette::StopArea.find(stop_area_ids) if stop_area_ids.present? && stop_area_ids.size <= 2 + end def parse_order scope |
