diff options
| author | Zog | 2018-01-29 11:54:47 +0100 |
|---|---|---|
| committer | cedricnjanga | 2018-02-06 11:04:59 -0800 |
| commit | 5e1b7a06a9958580fc18a0a4e33ff66ea6adcdf9 (patch) | |
| tree | bc05cba6cd5b2b594b5991f7b1d5b58ebdbddff1 /app/controllers | |
| parent | bde34143629e19273493fba8ba9e50bcd5f0c547 (diff) | |
| download | chouette-core-5e1b7a06a9958580fc18a0a4e33ff66ea6adcdf9.tar.bz2 | |
Refs #5754; Add a filter on purchase_windows on ReferentialVJs#index
Diffstat (limited to 'app/controllers')
| -rw-r--r-- | app/controllers/concerns/ransack_date_filter.rb | 5 | ||||
| -rw-r--r-- | app/controllers/referential_vehicle_journeys_controller.rb | 5 |
2 files changed, 8 insertions, 2 deletions
diff --git a/app/controllers/concerns/ransack_date_filter.rb b/app/controllers/concerns/ransack_date_filter.rb index 0fbde91d3..99889294c 100644 --- a/app/controllers/concerns/ransack_date_filter.rb +++ b/app/controllers/concerns/ransack_date_filter.rb @@ -29,13 +29,14 @@ module RansackDateFilter def ransack_period_range **options return options[:scope] unless !!@begin_range && !!@end_range + scope = options[:scope] if @begin_range > @end_range flash.now[:error] = options[:error_message] else - scope = options[:scope].send options[:query], @begin_range..@end_range + scope = scope.send options[:query], @begin_range..@end_range end scope end end -end
\ No newline at end of file +end diff --git a/app/controllers/referential_vehicle_journeys_controller.rb b/app/controllers/referential_vehicle_journeys_controller.rb index c3fcde0b1..385405b84 100644 --- a/app/controllers/referential_vehicle_journeys_controller.rb +++ b/app/controllers/referential_vehicle_journeys_controller.rb @@ -3,6 +3,10 @@ # class ReferentialVehicleJourneysController < ChouetteController include ReferentialSupport + include RansackDateFilter + + before_action only: [:index] { set_date_time_params("purchase_window", Date) } + defaults :resource_class => Chouette::VehicleJourney, collection_name: :vehicle_journeys requires_feature :referential_vehicle_journeys @@ -12,6 +16,7 @@ class ReferentialVehicleJourneysController < ChouetteController def collection @q ||= end_of_association_chain @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) @q = @q.ransack(params[:q]) @vehicle_journeys ||= @q.result.order(:published_journey_name).includes(:vehicle_journey_at_stops).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 |
