aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/models/chouette/route.rb6
-rw-r--r--app/models/merge.rb2
2 files changed, 6 insertions, 2 deletions
diff --git a/app/models/chouette/route.rb b/app/models/chouette/route.rb
index 928b65f13..0fac53ec0 100644
--- a/app/models/chouette/route.rb
+++ b/app/models/chouette/route.rb
@@ -148,11 +148,15 @@ module Chouette
values = self.slice(*['name', 'published_name', 'wayback']).values
values.tap do |attrs|
attrs << self.stop_points.sort_by(&:position).map{|sp| [sp.stop_area.user_objectid, sp.for_boarding, sp.for_alighting]}
- attrs << self.routing_constraint_zones.map(&:checksum).sort
+
+ routing_constraint_zones = self.routing_constraint_zones
+ routing_constraint_zones += Chouette::RoutingConstraintZone.with_stop_points_contained_in(self.stop_points) unless self.new_record?
+ attrs << routing_constraint_zones.uniq.map(&:checksum).sort
end
end
has_checksum_children StopPoint
+ has_checksum_children RoutingConstraintZone
def geometry
points = stop_areas.map(&:to_lat_lng).compact.map do |loc|
diff --git a/app/models/merge.rb b/app/models/merge.rb
index eadeccaa7..69749d105 100644
--- a/app/models/merge.rb
+++ b/app/models/merge.rb
@@ -212,7 +212,7 @@ class Merge < ApplicationModel
end
new_route.routing_constraint_zones.each do |new_routing_constraint_zone|
- routing_constraint_zone = routing_constraint_zones.find { |c| c.checksum = new_routing_constraint_zone.checksum }
+ routing_constraint_zone = routing_constraint_zones.find { |c| c.checksum == new_routing_constraint_zone.checksum }
if routing_constraint_zone
referential_routing_constraint_zones_new_ids[routing_constraint_zone.id] = new_routing_constraint_zone.id
else