aboutsummaryrefslogtreecommitdiffstats
path: root/app/services/referential_consolidated.rb
diff options
context:
space:
mode:
authorZog2018-05-28 10:27:10 +0200
committerZog2018-05-28 10:27:10 +0200
commitb060a1901a18e24e8925cf65ca566d75c03cee32 (patch)
tree30005cabd1ebe16de846ea82885b4ded71dba337 /app/services/referential_consolidated.rb
parent4080e257ad35d3200b4c02742268095c617901f9 (diff)
downloadchouette-core-b060a1901a18e24e8925cf65ca566d75c03cee32.tar.bz2
Refs #7031; Fix consolidated view7031-fox-consolidated-view
And remove n+1 queries
Diffstat (limited to 'app/services/referential_consolidated.rb')
-rw-r--r--app/services/referential_consolidated.rb17
1 files changed, 14 insertions, 3 deletions
diff --git a/app/services/referential_consolidated.rb b/app/services/referential_consolidated.rb
index d9c8d86da..832210db3 100644
--- a/app/services/referential_consolidated.rb
+++ b/app/services/referential_consolidated.rb
@@ -81,6 +81,7 @@ class ReferentialConsolidated
ar_model.vehicle_journey_at_stops.each do |vjas|
out[vjas.vehicle_journey_id][vjas.stop_point_id] = vjas
end
+ out
end
end
@@ -103,8 +104,18 @@ class ReferentialConsolidated
(should_highlight? || matching_stop_areas) && highlighted_journeys.exists?
end
+ def stop_areas
+ @stop_areas ||= begin
+ out = {}
+ ar_model.stop_areas.select(:id, :name, :city_name, :zip_code, :time_zone).each do |sp|
+ out[sp.id] = sp
+ end
+ out
+ end
+ end
+
def stop_points
- @stop_points ||= ar_model.stop_points.map {|sp| StopPoint.new(self, sp, @all_vehicle_journeys, params) }
+ @stop_points ||= ar_model.stop_points.map {|sp| StopPoint.new(self, sp, @all_vehicle_journeys, params, stop_area: stop_areas[sp.stop_area_id]) }
end
end
@@ -116,7 +127,7 @@ class ReferentialConsolidated
end
def vehicle_journey_at_stops
- @opts[:vehicle_journey_at_stops]
+ @opts[:vehicle_journey_at_stops] || {}
end
def has_purchase_window? purchase_window
@@ -132,7 +143,7 @@ class ReferentialConsolidated
def_delegators :ar_model, :id, :arrival_time, :departure_time, :stop_area_id
def stop_area
- ar_model.stop_area_light
+ @opts[:stop_area]
end
def name