diff options
| author | Alban Peignier | 2018-03-15 17:09:34 +0100 | 
|---|---|---|
| committer | GitHub | 2018-03-15 17:09:34 +0100 | 
| commit | f011f7e9806ffeaaba3ad73510bc818211f55dbd (patch) | |
| tree | b59a6a71f82b7121fb3a0ffa3a65b9d7cedaa3aa /app/models | |
| parent | d3d3c0f40c37d716cfccbf9297bfbdc98c692521 (diff) | |
| parent | 9291d45e825edbaf52cb556c102498366985496f (diff) | |
| download | chouette-core-f011f7e9806ffeaaba3ad73510bc818211f55dbd.tar.bz2 | |
Merge pull request #379 from af83/6095-route--calculate-distance-and-time-cost-between-stops
Calculate distance and time cost between Route stops. Refs #6095 
Diffstat (limited to 'app/models')
| -rw-r--r-- | app/models/chouette/route.rb | 32 | 
1 files changed, 18 insertions, 14 deletions
diff --git a/app/models/chouette/route.rb b/app/models/chouette/route.rb index 26b80733d..f814d5160 100644 --- a/app/models/chouette/route.rb +++ b/app/models/chouette/route.rb @@ -1,4 +1,3 @@ -  module Chouette    class Route < Chouette::TridentActiveRecord      has_paper_trail @@ -76,19 +75,20 @@ module Chouette      validates :wayback, inclusion: { in: self.wayback.values } -  def duplicate -    overrides = { -      'opposite_route_id' => nil, -      'name' => I18n.t('activerecord.copy', name: self.name) -    } -    keys_for_create = attributes.keys - %w{id objectid created_at updated_at} -    atts_for_create = attributes -      .slice(*keys_for_create) -      .merge(overrides) -    new_route = self.class.create!(atts_for_create) -    duplicate_stop_points(for_route: new_route) -    new_route -  end +    after_save :calculate_costs!, if: ->() { TomTom.enabled? } + +    def duplicate +      overrides = { +        'opposite_route_id' => nil, +        'name' => I18n.t('activerecord.copy', name: self.name) +      } +      atts_for_create = attributes +        .slice!(*%w{id objectid created_at updated_at}) +        .merge(overrides) +      new_route = self.class.create!(atts_for_create) +      duplicate_stop_points(for_route: new_route) +      new_route +    end      def duplicate_stop_points(for_route:)        stop_points.each(&duplicate_stop_point(for_route: for_route)) @@ -189,6 +189,10 @@ module Chouette        journey_pattern      end +    def calculate_costs! +      RouteWayCostWorker.perform_async(referential.id, id) +    end +      protected      def self.vehicle_journeys_timeless(stop_point_id)  | 
