aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZog2017-12-22 15:12:10 +0100
committerZog2017-12-22 15:12:10 +0100
commit8091f1ecd1f712dcb50344e6b4839b820e6e94ab (patch)
treef71acc25a6b33a08aaf2fffdda84d707ea025d64
parent705676378698b457c051e5f7324a18ee0714bec6 (diff)
downloadchouette-core-8091f1ecd1f712dcb50344e6b4839b820e6e94ab.tar.bz2
Optimize VehicleJourneysController
-rw-r--r--app/controllers/vehicle_journeys_controller.rb19
-rw-r--r--app/models/chouette/vehicle_journey.rb8
2 files changed, 13 insertions, 14 deletions
diff --git a/app/controllers/vehicle_journeys_controller.rb b/app/controllers/vehicle_journeys_controller.rb
index c941aeae4..f44553098 100644
--- a/app/controllers/vehicle_journeys_controller.rb
+++ b/app/controllers/vehicle_journeys_controller.rb
@@ -41,8 +41,8 @@ class VehicleJourneysController < ChouetteController
def index
@stop_points_list = []
- route.stop_points.each do |sp|
- @stop_points_list << {
+ @stop_points_list = route.stop_points.joins(:stop_area).map do |sp|
+ {
:id => sp.stop_area.id,
:route_id => sp.try(:route_id),
:object_id => sp.try(:objectid),
@@ -64,7 +64,6 @@ class VehicleJourneysController < ChouetteController
:street_name => sp.stop_area.try(:street_name)
}
end
-
@transport_mode = route.line['transport_mode']
@transport_submode = route.line['transport_submode']
@@ -92,13 +91,15 @@ class VehicleJourneysController < ChouetteController
scope = maybe_filter_by_departure_time(scope)
scope = maybe_filter_out_journeys_with_time_tables(scope)
- @q = scope.search filtered_ransack_params
+ @vehicle_journeys ||= begin
+ @q = scope.search filtered_ransack_params
- @ppage = 20
- @vehicle_journeys = @q.result.paginate(:page => params[:page], :per_page => @ppage)
- @footnotes = route.line.footnotes.to_json
- @matrix = resource_class.matrix(@vehicle_journeys)
- @vehicle_journeys
+ @ppage = 20
+ @vehicle_journeys = @q.result.paginate(:page => params[:page], :per_page => @ppage)
+ @footnotes = route.line.footnotes.to_json
+ @matrix = resource_class.matrix(@vehicle_journeys)
+ @vehicle_journeys
+ end
end
def maybe_filter_by_departure_time(scope)
diff --git a/app/models/chouette/vehicle_journey.rb b/app/models/chouette/vehicle_journey.rb
index 247c30668..67bbbe927 100644
--- a/app/models/chouette/vehicle_journey.rb
+++ b/app/models/chouette/vehicle_journey.rb
@@ -241,11 +241,9 @@ module Chouette
end
def self.matrix(vehicle_journeys)
- {}.tap do |hash|
- vehicle_journeys.map{ |vj|
- vj.vehicle_journey_at_stops.map{ |vjas |hash[ "#{vj.id}-#{vjas.stop_point_id}"] = vjas }
- }
- end
+ Hash[*VehicleJourneyAtStop.where(vehicle_journey_id: vehicle_journeys.pluck(:id)).map do |vjas|
+ [ "#{vjas.vehicle_journey_id}-#{vjas.stop_point_id}", vjas]
+ end.flatten]
end
def self.with_stops