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 | 
