aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Florisson2014-08-26 11:44:37 +0200
committerMarc Florisson2014-08-26 11:44:37 +0200
commit82cf451ad0faa76a26adc27528f4458596157802 (patch)
tree052e643e5980f5cc8b136fcb36306e83a8b0eec5
parent97c43321449ca71de4c3646f79bdcca6f034e499 (diff)
downloadchouette-core-82cf451ad0faa76a26adc27528f4458596157802.tar.bz2
fix do all in one transaction. Mantis 26839
-rw-r--r--app/models/vehicle_translation.rb21
1 files changed, 11 insertions, 10 deletions
diff --git a/app/models/vehicle_translation.rb b/app/models/vehicle_translation.rb
index 639981d63..f89c127ab 100644
--- a/app/models/vehicle_translation.rb
+++ b/app/models/vehicle_translation.rb
@@ -61,7 +61,6 @@ class VehicleTranslation
end
def translate
- vehicle = vehicle_journey
copied_attributes = vehicle_journey.attributes
copied_attributes.delete( "id")
copied_attributes.delete( "objectid")
@@ -69,18 +68,20 @@ class VehicleTranslation
# time shift for current duplicated vehicle
delta = first_delta
- 1.upto( count.to_i) do |index|
- translated = Chouette::VehicleJourney.create( copied_attributes)
- translated.time_tables = vehicle.time_tables
+ vehicle_journey.transaction do
+ 1.upto( count.to_i) do |index|
+ translated = Chouette::VehicleJourney.create( copied_attributes)
+ translated.time_tables = vehicle_journey.time_tables
- vehicle.vehicle_journey_at_stops.each do |vjas|
- vjas_attributes = vjas.attributes.merge( "vehicle_journey_id" => translated.id)
- vjas_attributes.merge! "departure_time" => ( vjas_attributes[ "departure_time"] + delta),
- "arrival_time" => ( vjas_attributes[ "arrival_time"] + delta)
+ vehicle_journey.vehicle_journey_at_stops.each do |vjas|
+ vjas_attributes = vjas.attributes.merge( "vehicle_journey_id" => translated.id)
+ vjas_attributes.merge! "departure_time" => ( vjas_attributes[ "departure_time"] + delta),
+ "arrival_time" => ( vjas_attributes[ "arrival_time"] + delta)
- Chouette::VehicleJourneyAtStop.create( vjas_attributes)
+ Chouette::VehicleJourneyAtStop.create( vjas_attributes)
+ end
+ delta += duration.to_i.minutes
end
- delta += duration.to_i.minutes
end
end