aboutsummaryrefslogtreecommitdiffstats
path: root/app/models/chouette/time_table.rb
diff options
context:
space:
mode:
authorXinhui2017-06-30 15:58:54 +0200
committerXinhui2017-06-30 15:58:54 +0200
commitba68d5ec06644e5d2d698a6a889f16e3e684705f (patch)
tree86d934541dd5214a0913c13a33ffbd656da1bc84 /app/models/chouette/time_table.rb
parent5dc26b70870f34650b9d9df18e5447a379b67d10 (diff)
downloadchouette-core-ba68d5ec06644e5d2d698a6a889f16e3e684705f.tar.bz2
Spec time_table#disjoin -m Refs
Diffstat (limited to 'app/models/chouette/time_table.rb')
-rw-r--r--app/models/chouette/time_table.rb13
1 files changed, 5 insertions, 8 deletions
diff --git a/app/models/chouette/time_table.rb b/app/models/chouette/time_table.rb
index cb1d0c5da..d907d797e 100644
--- a/app/models/chouette/time_table.rb
+++ b/app/models/chouette/time_table.rb
@@ -520,18 +520,15 @@ class Chouette::TimeTable < Chouette::TridentActiveRecord
self.convert_continuous_dates_to_periods
end
-
+ # remove days from another calendar
def disjoin!(another_tt)
transaction do
- # remove days from another calendar
- days_to_exclude = self.intersects(another_tt.effective_days)
- days = self.effective_days - days_to_exclude
+ days = self.included_days_in_dates_and_periods - another_tt.included_days_in_dates_and_periods
self.dates.clear
self.periods.clear
- days.each {|d| self.dates << Chouette::TimeTableDate.new( :date =>d, :in_out => true)}
-
- self.dates.to_a.sort! { |a,b| a.date <=> b.date}
- self.periods.to_a.sort! { |a,b| a.period_start <=> b.period_start}
+ days.sort.each do |d|
+ self.dates << Chouette::TimeTableDate.new(:date => d, :in_out => true)
+ end
self.save!
end
self.convert_continuous_dates_to_periods