diff options
| author | Xinhui | 2017-06-30 14:28:34 +0200 | 
|---|---|---|
| committer | Xinhui | 2017-06-30 14:28:34 +0200 | 
| commit | 5dc26b70870f34650b9d9df18e5447a379b67d10 (patch) | |
| tree | 045dd2aeb105bb0ca906ec3a221350e27c6a1f67 /app | |
| parent | 89d14a4813402d004d407d77fbd32846e367a7ac (diff) | |
| download | chouette-core-5dc26b70870f34650b9d9df18e5447a379b67d10.tar.bz2 | |
Fix cleanup#destroy_time_tables should only destroy vehicle_journey of deleted time_tables
Refs #3917
Diffstat (limited to 'app')
| -rw-r--r-- | app/models/clean_up.rb | 12 | 
1 files changed, 9 insertions, 3 deletions
| diff --git a/app/models/clean_up.rb b/app/models/clean_up.rb index e39928a17..cbcde72f5 100644 --- a/app/models/clean_up.rb +++ b/app/models/clean_up.rb @@ -16,10 +16,13 @@ class CleanUp < ActiveRecord::Base    def clean      {}.tap do |result| -      result['time_table']        = send("destroy_time_tables_#{self.date_type}").try(:count) +      processed = send("destroy_time_tables_#{self.date_type}") +      if processed +        result['time_table']      = processed[:time_tables].try(:count) +        result['vehicle_journey'] = processed[:vehicle_journeys].try(:count) +      end        result['time_table_date']   = send("destroy_time_tables_dates_#{self.date_type}").try(:count)        result['time_table_period'] = send("destroy_time_tables_periods_#{self.date_type}").try(:count) -      result['vehicle_journey']   = destroy_vehicle_journey_without_time_table.try(:count)        self.overlapping_periods.each do |period|          exclude_dates_in_overlapping_period(period)        end @@ -106,13 +109,16 @@ class CleanUp < ActiveRecord::Base    end    def destroy_time_tables(time_tables) +    results = { :time_tables => [], :vehicle_journeys => [] }      # Delete vehicle_journey time_table association      time_tables.each do |time_table|        time_table.vehicle_journeys.each do |vj|          vj.time_tables.delete(time_table) +        results[:vehicle_journeys] << vj.destroy if vj.time_tables.empty?        end      end -    time_tables.destroy_all +    results[:time_tables] = time_tables.destroy_all +    results    end    aasm column: :status do | 
