aboutsummaryrefslogtreecommitdiffstats
path: root/app/models/concerns
diff options
context:
space:
mode:
authorcedricnjanga2018-02-14 06:26:04 -0800
committerGitHub2018-02-14 06:26:04 -0800
commit3916476c64dc690195a1273dab7188bb48f69152 (patch)
tree4b0c02015b4e41ffb8bad34d3694266eae25ca20 /app/models/concerns
parent2b37ca3b2f57d4c8cb00e18ce39371e7aefc1db3 (diff)
parent385a9e1b68f3eea51f71386a8f4856477ba6a273 (diff)
downloadchouette-core-3562_ccset_affectation.tar.bz2
Merge branch 'master' into 3562_ccset_affectation3562_ccset_affectation
Diffstat (limited to 'app/models/concerns')
-rw-r--r--app/models/concerns/checksum_support.rb25
-rw-r--r--app/models/concerns/min_max_values_validation.rb1
-rw-r--r--app/models/concerns/timetable_support.rb2
3 files changed, 24 insertions, 4 deletions
diff --git a/app/models/concerns/checksum_support.rb b/app/models/concerns/checksum_support.rb
index a76995b0f..92103798e 100644
--- a/app/models/concerns/checksum_support.rb
+++ b/app/models/concerns/checksum_support.rb
@@ -24,10 +24,29 @@ module ChecksumSupport
self.attributes.values
end
+ def checksum_replace_nil_or_empty_values values
+ # Replace empty array by nil & nil by VALUE_FOR_NIL_ATTRIBUTE
+ values
+ .map { |x| x.present? && x || VALUE_FOR_NIL_ATTRIBUTE }
+ .map do |item|
+ item =
+ if item.kind_of?(Array)
+ checksum_replace_nil_or_empty_values(item)
+ else
+ item
+ end
+ end
+ end
+
def current_checksum_source
- source = self.checksum_attributes.map{ |x| x unless x.try(:empty?) }
- source = source.map{ |x| x || VALUE_FOR_NIL_ATTRIBUTE }
- source.map(&:to_s).join(SEPARATOR)
+ source = checksum_replace_nil_or_empty_values(self.checksum_attributes)
+ source.map{ |item|
+ if item.kind_of?(Array)
+ item.map{ |x| x.kind_of?(Array) ? "(#{x.join(',')})" : x }.join(',')
+ else
+ item
+ end
+ }.join(SEPARATOR)
end
def set_current_checksum_source
diff --git a/app/models/concerns/min_max_values_validation.rb b/app/models/concerns/min_max_values_validation.rb
index 9b2e0d548..eff779d81 100644
--- a/app/models/concerns/min_max_values_validation.rb
+++ b/app/models/concerns/min_max_values_validation.rb
@@ -2,6 +2,7 @@ module MinMaxValuesValidation
extend ActiveSupport::Concern
included do
+ validates_presence_of :minimum, :maximum
validate :min_max_values_validation
end
diff --git a/app/models/concerns/timetable_support.rb b/app/models/concerns/timetable_support.rb
index 8c49723fe..5242abc33 100644
--- a/app/models/concerns/timetable_support.rb
+++ b/app/models/concerns/timetable_support.rb
@@ -101,7 +101,7 @@ module TimetableSupport
period.period_start = Date.parse(item['period_start'])
period.period_end = Date.parse(item['period_end'])
- period.save if period === ActiveRecord::Base && period.changed?
+ period.save if period.is_a?(ActiveRecord::Base) && period.changed?
item['id'] = period.id
end