aboutsummaryrefslogtreecommitdiffstats
path: root/app/models/chouette/route.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/chouette/route.rb')
-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)