aboutsummaryrefslogtreecommitdiffstats
path: root/app/models/chouette
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/chouette')
-rw-r--r--app/models/chouette/journey_pattern.rb16
-rw-r--r--app/models/chouette/route.rb12
2 files changed, 28 insertions, 0 deletions
diff --git a/app/models/chouette/journey_pattern.rb b/app/models/chouette/journey_pattern.rb
index aa9fdb810..830e985d9 100644
--- a/app/models/chouette/journey_pattern.rb
+++ b/app/models/chouette/journey_pattern.rb
@@ -170,5 +170,21 @@ module Chouette
end
full
end
+
+ def set_distances distances
+ raise "inconsistent data: #{distances.count} values for #{stop_points.count} stops" unless distances.count == stop_points.count
+ prev = distances[0].to_i
+ _costs = self.costs
+ distances[1..-1].each_with_index do |distance, i|
+ distance = distance.to_i
+ relative = distance - prev
+ prev = distance
+ start, stop = stop_points[i..i+1]
+ key = "#{start.stop_area_id}-#{stop.stop_area_id}"
+ _costs[key] ||= {}
+ _costs[key]["distance"] = relative
+ end
+ self.costs = _costs
+ end
end
end
diff --git a/app/models/chouette/route.rb b/app/models/chouette/route.rb
index 5cc5d8b0d..e418134de 100644
--- a/app/models/chouette/route.rb
+++ b/app/models/chouette/route.rb
@@ -185,6 +185,18 @@ module Chouette
return true
end
+ def full_journey_pattern
+ out = journey_patterns.find{|jp| jp.stop_points.count == self.stop_points.count }
+ unless out
+ out = journey_patterns.build name: self.name
+ self.stop_points.each do |sp|
+ out.stop_points.build stop_area: sp.stop_area, position: sp.position
+ end
+ out.save!
+ end
+ out
+ end
+
protected
def self.vehicle_journeys_timeless(stop_point_id)