aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorXinhui2017-04-13 16:03:33 +0200
committerXinhui2017-04-13 16:03:38 +0200
commitdc692f9eb2cfe7181e561065c8fea2e4b19d1504 (patch)
treeaead5da3338dfc3c52c759b13232896bca082fb9 /app
parent147cb5733741aff77b0cf191b18d56bc235a6e3b (diff)
downloadchouette-core-dc692f9eb2cfe7181e561065c8fea2e4b19d1504.tar.bz2
Vehicle journeys clear time_tableas association when remove from state
Refs #3121
Diffstat (limited to 'app')
-rw-r--r--app/models/chouette/vehicle_journey.rb10
1 files changed, 6 insertions, 4 deletions
diff --git a/app/models/chouette/vehicle_journey.rb b/app/models/chouette/vehicle_journey.rb
index 27830490f..913fdcd73 100644
--- a/app/models/chouette/vehicle_journey.rb
+++ b/app/models/chouette/vehicle_journey.rb
@@ -92,10 +92,12 @@ module Chouette
end
def update_time_tables_from_state item
- item['time_tables'].each do |tt|
- unless self.time_tables.map(&:id).include?(tt['id'])
- self.time_tables << Chouette::TimeTable.find(tt['id'])
- end
+ state_tt_ids = item['time_tables'].map{|tt| tt['id']}
+ self.time_tables.map(&:id).each do |id|
+ self.time_tables.delete(self.time_tables.find(id)) unless state_tt_ids.include?(id)
+ end
+ state_tt_ids.each do |id|
+ self.time_tables << Chouette::TimeTable.find(id) unless self.time_tables.map(&:id).include?(id)
end
end