diff options
| author | Guillaume | 2017-11-03 16:20:06 +0100 |
|---|---|---|
| committer | Guillaume | 2017-11-03 16:20:06 +0100 |
| commit | a9216c0457f81c9c27f6ec5d3100941b68ddf9e4 (patch) | |
| tree | ae73f172e54b1dd4501f9749484d1496182974cd /app/models/compliance_control.rb | |
| parent | f201d7cdd68ca554e7a99eb791baf48a540b8978 (diff) | |
| parent | 75988d4b5d821266131aec86e33c67eda0c38dcb (diff) | |
| download | chouette-core-a9216c0457f81c9c27f6ec5d3100941b68ddf9e4.tar.bz2 | |
Merge branch 'master' into 4755-page_for_validate_referential
Diffstat (limited to 'app/models/compliance_control.rb')
| -rw-r--r-- | app/models/compliance_control.rb | 72 |
1 files changed, 43 insertions, 29 deletions
diff --git a/app/models/compliance_control.rb b/app/models/compliance_control.rb index 08efa7e9a..49fb6513f 100644 --- a/app/models/compliance_control.rb +++ b/app/models/compliance_control.rb @@ -1,29 +1,7 @@ class ComplianceControl < ActiveRecord::Base - extend Enumerize - belongs_to :compliance_control_set - belongs_to :compliance_control_block - - enumerize :criticity, in: %i(warning error), scope: true, default: :warning - hstore_accessor :control_attributes, {} - - validates :criticity, presence: true - validates :name, presence: true - validates :code, presence: true, uniqueness: { scope: :compliance_control_set } - validates :origin_code, presence: true - validates :compliance_control_set, presence: true - - validate def coherent_control_set - return true if compliance_control_block_id.nil? - ids = [compliance_control_block.compliance_control_set_id, compliance_control_set_id] - return true if ids.first == ids.last - names = ids.map{|id| ComplianceControlSet.find(id).name} - errors.add(:coherent_control_set, - I18n.t('compliance_controls.errors.incoherent_control_sets', - indirect_set_name: names.first, - direct_set_name: names.last)) - end class << self + def criticities; %i(warning error) end def default_code; "" end def dynamic_attributes hstore_metadata_for_control_attributes.keys @@ -33,6 +11,17 @@ class ComplianceControl < ActiveRecord::Base ComplianceControlPolicy end + def subclass_patterns + { + generic: 'Generic', + journey_pattern: 'JourneyPattern', + line: 'Line', + route: 'Route', + routing_constraint_zone: 'RoutingConstraint', + vehicle_journey: 'VehicleJourney' + } + end + def inherited(child) child.instance_eval do def model_name @@ -43,12 +32,37 @@ class ComplianceControl < ActiveRecord::Base end end - def initialize(attributes = {}) - super - self.name ||= I18n.t("activerecord.models.#{self.class.name.underscore}.one") - self.code ||= self.class.default_code - self.origin_code ||= self.class.default_code - end + extend Enumerize + belongs_to :compliance_control_set + belongs_to :compliance_control_block + + enumerize :criticity, in: criticities, scope: true, default: :warning + hstore_accessor :control_attributes, {} + + validates :criticity, presence: true + validates :name, presence: true + validates :code, presence: true, uniqueness: { scope: :compliance_control_set } + validates :origin_code, presence: true + validates :compliance_control_set, presence: true + + validate def coherent_control_set + return true if compliance_control_block_id.nil? + ids = [compliance_control_block.compliance_control_set_id, compliance_control_set_id] + return true if ids.first == ids.last + names = ids.map{|id| ComplianceControlSet.find(id).name} + errors.add(:coherent_control_set, + I18n.t('compliance_controls.errors.incoherent_control_sets', + indirect_set_name: names.first, + direct_set_name: names.last)) +end + + +def initialize(attributes = {}) + super + self.name ||= I18n.t("activerecord.models.#{self.class.name.underscore}.one") + self.code ||= self.class.default_code + self.origin_code ||= self.class.default_code +end end |
