aboutsummaryrefslogtreecommitdiffstats
path: root/app/models
diff options
context:
space:
mode:
authorAlban Peignier2018-03-15 17:09:34 +0100
committerGitHub2018-03-15 17:09:34 +0100
commitf011f7e9806ffeaaba3ad73510bc818211f55dbd (patch)
treeb59a6a71f82b7121fb3a0ffa3a65b9d7cedaa3aa /app/models
parentd3d3c0f40c37d716cfccbf9297bfbdc98c692521 (diff)
parent9291d45e825edbaf52cb556c102498366985496f (diff)
downloadchouette-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.rb32
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)