diff options
| author | Xinhui | 2017-06-30 15:58:54 +0200 |
|---|---|---|
| committer | Xinhui | 2017-06-30 15:58:54 +0200 |
| commit | ba68d5ec06644e5d2d698a6a889f16e3e684705f (patch) | |
| tree | 86d934541dd5214a0913c13a33ffbd656da1bc84 /app/models/chouette/time_table.rb | |
| parent | 5dc26b70870f34650b9d9df18e5447a379b67d10 (diff) | |
| download | chouette-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.rb | 13 |
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 |
