diff options
| -rw-r--r-- | app/models/chouette/purchase_window.rb | 7 | ||||
| -rw-r--r-- | app/models/chouette/vehicle_journey.rb | 3 |
2 files changed, 10 insertions, 0 deletions
diff --git a/app/models/chouette/purchase_window.rb b/app/models/chouette/purchase_window.rb index d22674637..276713d08 100644 --- a/app/models/chouette/purchase_window.rb +++ b/app/models/chouette/purchase_window.rb @@ -21,6 +21,13 @@ module Chouette scope :overlap_dates, ->(date_range) { where('daterange(?, ?) && any (date_ranges)', date_range.first, date_range.last + 1.day) } scope :matching_dates, ->(date_range) { where('ARRAY[daterange(?, ?)] = date_ranges', date_range.first, date_range.last + 1.day) } + # VehicleJourneys include PurchaseWindow checksums in their checksums + # OPTIMIZEME + def update_vehicle_journey_checksums + vehicle_journeys.find_each(&:update_checksum!) + end + after_commit :update_vehicle_journey_checksums + def self.ransackable_scopes(auth_object = nil) [:contains_date] end diff --git a/app/models/chouette/vehicle_journey.rb b/app/models/chouette/vehicle_journey.rb index c269d478e..814eeb388 100644 --- a/app/models/chouette/vehicle_journey.rb +++ b/app/models/chouette/vehicle_journey.rb @@ -140,9 +140,12 @@ module Chouette attrs << self.published_journey_identifier attrs << self.try(:company).try(:get_objectid).try(:local_id) attrs << self.footnotes.map(&:checksum).sort + vjas = self.vehicle_journey_at_stops vjas += VehicleJourneyAtStop.where(vehicle_journey_id: self.id) unless self.new_record? attrs << vjas.uniq.sort_by { |s| s.stop_point&.position }.map(&:checksum).sort + + attrs << self.purchase_windows.map(&:checksum).sort if purchase_windows.present? end end |
