diff options
| author | Marc Florisson | 2014-08-26 11:44:37 +0200 |
|---|---|---|
| committer | Marc Florisson | 2014-08-26 11:44:37 +0200 |
| commit | 82cf451ad0faa76a26adc27528f4458596157802 (patch) | |
| tree | 052e643e5980f5cc8b136fcb36306e83a8b0eec5 | |
| parent | 97c43321449ca71de4c3646f79bdcca6f034e499 (diff) | |
| download | chouette-core-82cf451ad0faa76a26adc27528f4458596157802.tar.bz2 | |
fix do all in one transaction. Mantis 26839
| -rw-r--r-- | app/models/vehicle_translation.rb | 21 |
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 |
