diff options
| author | jpl | 2016-11-21 10:57:47 +0100 | 
|---|---|---|
| committer | jpl | 2016-11-21 10:57:47 +0100 | 
| commit | c37cf90763932254cc622e3379b9364788333207 (patch) | |
| tree | 63de4dbad6b53a1eb04a64ce1f42d32054f5f175 | |
| parent | c64a5dddc00a6431c17c75ce278ca0d1f1199b96 (diff) | |
| download | chouette-core-c37cf90763932254cc622e3379b9364788333207.tar.bz2 | |
Avoid errors when ReferentialMetadata dates are invalid, or periods nil. Refs #1782
| -rw-r--r-- | app/models/referential.rb | 2 | ||||
| -rw-r--r-- | app/models/referential_metadata.rb | 6 | 
2 files changed, 5 insertions, 3 deletions
| diff --git a/app/models/referential.rb b/app/models/referential.rb index 300ff3239..bac8b09fa 100644 --- a/app/models/referential.rb +++ b/app/models/referential.rb @@ -220,7 +220,7 @@ class Referential < ActiveRecord::Base      return [] unless metadatas.present?      line_ids = metadatas.first.line_ids -    period = metadatas.first.periodes.first +    period = metadatas.first.periodes.try :first      return [] unless line_ids.present? && period diff --git a/app/models/referential_metadata.rb b/app/models/referential_metadata.rb index 5867ef0cf..a1066e43b 100644 --- a/app/models/referential_metadata.rb +++ b/app/models/referential_metadata.rb @@ -7,6 +7,8 @@ class ReferentialMetadata < ActiveRecord::Base    validates :lines, presence: true    validates :periodes, presence: true +  validates :first_period_begin, :first_period_end, presence: true +    scope :include_lines, -> (line_ids) { where('line_ids && ARRAY[?]', line_ids) }    scope :include_dateranges, -> (dateranges) { where('periodes && ARRAY[?]', dateranges) } @@ -18,7 +20,7 @@ class ReferentialMetadata < ActiveRecord::Base      @first_period_begin or first_period.try(:begin)    end    def first_period_begin=(date) -    date = Date.parse(date) if String === date +    date = (Date.parse(date) rescue nil) if String === date      periodes_will_change! unless @first_period_begin == date      @first_period_begin = date    end @@ -34,7 +36,7 @@ class ReferentialMetadata < ActiveRecord::Base      end    end    def first_period_end=(date) -    date = Date.parse(date) if String === date +    date = (Date.parse(date) rescue nil) if String === date      periodes_will_change! unless @first_period_end == date      @first_period_end = date    end | 
