diff options
Diffstat (limited to 'app/models/chouette')
| -rw-r--r-- | app/models/chouette/journey_pattern.rb | 16 | ||||
| -rw-r--r-- | app/models/chouette/route.rb | 12 |
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) |
