From a90a7cbf003ded70478eec6afdfee2581a06eaed Mon Sep 17 00:00:00 2001 From: Zog Date: Thu, 17 May 2018 16:18:46 +0200 Subject: Refs #7031; Page loading optimizations --- app/models/chouette/route.rb | 3 +++ app/models/chouette/stop_point.rb | 3 ++- app/models/chouette/vehicle_journey.rb | 1 + app/models/chouette/vehicle_journey_at_stop.rb | 4 ++-- 4 files changed, 8 insertions(+), 3 deletions(-) (limited to 'app/models/chouette') diff --git a/app/models/chouette/route.rb b/app/models/chouette/route.rb index 949b18d6f..958bec75b 100644 --- a/app/models/chouette/route.rb +++ b/app/models/chouette/route.rb @@ -63,6 +63,9 @@ module Chouette where(" position between ? and ? ", between_positions.first, between_positions.last) end end + + has_many :vehicle_journey_at_stops, through: :vehicle_journeys + has_many :stop_areas, -> { order('stop_points.position ASC') }, :through => :stop_points do def between(departure, arrival) departure, arrival = [departure, arrival].map do |endpoint| diff --git a/app/models/chouette/stop_point.rb b/app/models/chouette/stop_point.rb index edb0e81fd..82bedc6ab 100644 --- a/app/models/chouette/stop_point.rb +++ b/app/models/chouette/stop_point.rb @@ -10,6 +10,7 @@ module Chouette include ObjectidSupport belongs_to :stop_area + belongs_to :stop_area_light, -> {select(:name, :city_name, :zip_code, :time_zone)}, class_name: "Chouette::StopArea", foreign_key: :stop_area_id belongs_to :route, inverse_of: :stop_points has_many :journey_patterns, through: :route has_many :vehicle_journey_at_stops, :dependent => :destroy @@ -27,7 +28,7 @@ module Chouette scope :default_order, -> { order("position") } - delegate :name, :registration_number, :kind, :area_type, to: :stop_area + delegate :name, :registration_number, :kind, :area_type, to: :stop_area_light before_destroy :remove_dependent_journey_pattern_stop_points def remove_dependent_journey_pattern_stop_points diff --git a/app/models/chouette/vehicle_journey.rb b/app/models/chouette/vehicle_journey.rb index 818287b04..3bbd89f7b 100644 --- a/app/models/chouette/vehicle_journey.rb +++ b/app/models/chouette/vehicle_journey.rb @@ -21,6 +21,7 @@ module Chouette belongs_to :company belongs_to :route belongs_to :journey_pattern + belongs_to :journey_pattern_only_objectid, -> {select("journey_patterns.objectid")}, class_name: "Chouette::JourneyPattern", foreign_key: :journey_pattern_id has_many :stop_areas, through: :journey_pattern has_and_belongs_to_many :footnotes, :class_name => 'Chouette::Footnote' diff --git a/app/models/chouette/vehicle_journey_at_stop.rb b/app/models/chouette/vehicle_journey_at_stop.rb index 3f5bd5abf..797571070 100644 --- a/app/models/chouette/vehicle_journey_at_stop.rb +++ b/app/models/chouette/vehicle_journey_at_stop.rb @@ -101,8 +101,8 @@ module Chouette end def time_zone_offset - return 0 unless stop_point&.stop_area&.time_zone.present? - ActiveSupport::TimeZone[stop_point.stop_area.time_zone]&.utc_offset || 0 + return 0 unless stop_point&.stop_area_light&.time_zone.present? + ActiveSupport::TimeZone[stop_point.stop_area_light.time_zone]&.utc_offset || 0 end private -- cgit v1.2.3