aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/models/chouette/purchase_window.rb7
-rw-r--r--app/models/chouette/vehicle_journey.rb3
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