diff options
| author | Alban Peignier | 2018-04-22 15:35:42 +0200 |
|---|---|---|
| committer | Alban Peignier | 2018-04-22 16:50:54 +0200 |
| commit | 7503f1357a9f2a8c428e1b77b88a2b1e9ea4f1be (patch) | |
| tree | 52d977c29d99e684e6e591372b35f42bd4f6a09c | |
| parent | 0e842bc3123dc40e2b93b3d6710cfb242b19fa93 (diff) | |
| download | chouette-core-7503f1357a9f2a8c428e1b77b88a2b1e9ea4f1be.tar.bz2 | |
Include purchase windows in VehicleJourney checksum. Refs #5956
| -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 |
