diff options
Diffstat (limited to 'app/models')
| -rw-r--r-- | app/models/chouette/time_table.rb | 19 | ||||
| -rw-r--r-- | app/models/referential.rb | 4 | 
2 files changed, 18 insertions, 5 deletions
diff --git a/app/models/chouette/time_table.rb b/app/models/chouette/time_table.rb index c566452f4..cb1d0c5da 100644 --- a/app/models/chouette/time_table.rb +++ b/app/models/chouette/time_table.rb @@ -496,16 +496,25 @@ class Chouette::TimeTable < Chouette::TridentActiveRecord      self.convert_continuous_dates_to_periods    end +  def included_days_in_dates_and_periods +    in_day  = self.dates.select {|d| d.in_out }.map(&:date) +    out_day = self.dates.select {|d| !d.in_out }.map(&:date) + +    in_periods = self.periods.map{|p| (p.period_start..p.period_end).to_a }.flatten +    days = in_periods + in_day +    days -= out_day +    days +  end +    # remove dates form tt which aren't in another_tt    def intersect!(another_tt)      transaction do - -      # transform tt as effective dates and get common ones -      days = another_tt.intersects(self.effective_days) & self.intersects(another_tt.effective_days) +      days = self.included_days_in_dates_and_periods & another_tt.included_days_in_dates_and_periods        self.dates.clear -      days.each {|d| self.dates << Chouette::TimeTableDate.new( :date =>d, :in_out => true)}        self.periods.clear -      self.dates.to_a.sort! { |a,b| a.date <=> b.date} +      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 diff --git a/app/models/referential.rb b/app/models/referential.rb index 0ce325bd6..ed23e2e51 100644 --- a/app/models/referential.rb +++ b/app/models/referential.rb @@ -114,6 +114,10 @@ class Referential < ActiveRecord::Base      Chouette::RouteSection.all    end +  def routing_constraint_zones +    Chouette::RoutingConstraintZone.all +  end +    after_initialize :define_default_attributes    def define_default_attributes  | 
