aboutsummaryrefslogtreecommitdiffstats
path: root/app/models
diff options
context:
space:
mode:
authorXinhui2017-06-30 14:28:34 +0200
committerXinhui2017-06-30 14:28:34 +0200
commit5dc26b70870f34650b9d9df18e5447a379b67d10 (patch)
tree045dd2aeb105bb0ca906ec3a221350e27c6a1f67 /app/models
parent89d14a4813402d004d407d77fbd32846e367a7ac (diff)
downloadchouette-core-5dc26b70870f34650b9d9df18e5447a379b67d10.tar.bz2
Fix cleanup#destroy_time_tables should only destroy vehicle_journey of deleted time_tables
Refs #3917
Diffstat (limited to 'app/models')
-rw-r--r--app/models/clean_up.rb12
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