diff options
| author | Xinhui | 2017-06-13 16:38:11 +0200 | 
|---|---|---|
| committer | Xinhui | 2017-06-13 16:38:16 +0200 | 
| commit | f1714bc046dd187883197371e5c8641dbdc5e17f (patch) | |
| tree | 65d6898113b503bb71d88060ea29a2c98d071c7b | |
| parent | 238cce6d229c0f46b5ea6731e80af1bafe952726 (diff) | |
| download | chouette-core-f1714bc046dd187883197371e5c8641dbdc5e17f.tar.bz2 | |
Fix merge time_table with calendar should copy calendar dates
Refs #3705
| -rw-r--r-- | app/models/chouette/time_table.rb | 11 | ||||
| -rw-r--r-- | spec/models/chouette/time_table_spec.rb | 11 | 
2 files changed, 16 insertions, 6 deletions
| diff --git a/app/models/chouette/time_table.rb b/app/models/chouette/time_table.rb index 151570f20..4186af6d2 100644 --- a/app/models/chouette/time_table.rb +++ b/app/models/chouette/time_table.rb @@ -477,17 +477,18 @@ class Chouette::TimeTable < Chouette::TridentActiveRecord    # merge effective days from another timetable    def merge!(another_tt)      transaction do +    # merge dates +    self.dates ||= [] +    another_tt.included_days.each do |d| +      add_included_day d +    end +      # if one tt has no period, just merge lists      if self.periods.empty? || another_tt.periods.empty?        if !another_tt.periods.empty?          # copy periods          self.periods = another_tt.clone_periods        end -      # merge dates -      self.dates ||= [] -      another_tt.included_days.each do |d| -        add_included_day d -      end      else        # check if periods can be kept        common_day_types = self.int_day_types & another_tt.int_day_types & 508 diff --git a/spec/models/chouette/time_table_spec.rb b/spec/models/chouette/time_table_spec.rb index 1e5972c04..7a8863cb3 100644 --- a/spec/models/chouette/time_table_spec.rb +++ b/spec/models/chouette/time_table_spec.rb @@ -1,12 +1,21 @@  require 'spec_helper'  describe Chouette::TimeTable, :type => :model do -    subject { create(:time_table) }    it { is_expected.to validate_presence_of :comment }    it { is_expected.to validate_uniqueness_of :objectid } +  context "merge with calendar" do +    let(:calendar) { create(:calendar) } + +    it 'should add calendar dates to time_table' do +      subject.dates.clear +      subject.merge!(calendar.convert_to_time_table) +      expect(subject.dates.map(&:date)).to include(*calendar.dates) +    end +  end +    describe "actualize" do      let(:calendar) { create(:calendar) }      let(:int_day_types) { 508 } | 
