aboutsummaryrefslogtreecommitdiffstats
path: root/app/controllers
diff options
context:
space:
mode:
authorZog2018-02-13 14:37:23 +0100
committerAlban Peignier2018-02-19 22:29:55 +0100
commitba1e18ba0a641d34e6dcc7cba42931b1e5f00d1a (patch)
treeb12a48b30fd0967f36e7ea7044df60685efccf63 /app/controllers
parent688ed83020fc97396382905b1409e2c61159abe3 (diff)
downloadchouette-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.rb8
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