diff options
| author | Zog | 2018-02-23 16:32:35 +0100 | 
|---|---|---|
| committer | Zog | 2018-02-23 16:32:35 +0100 | 
| commit | 0a91ae5d80e476f967160e1987cc7e63beabea94 (patch) | |
| tree | 537230f36225698bfb45caf97490304a6dbb57c1 /app/models | |
| parent | 206bf218e1b84dbe53683ec2e3f983cd30f7ded1 (diff) | |
| download | chouette-core-0a91ae5d80e476f967160e1987cc7e63beabea94.tar.bz2 | |
Refs 5878; Add ComplianceCheck#show
Diffstat (limited to 'app/models')
| -rw-r--r-- | app/models/compliance_check.rb | 10 | ||||
| -rw-r--r-- | app/models/compliance_control.rb | 40 | ||||
| -rw-r--r-- | app/models/concerns/compliance_item_support.rb | 15 | 
3 files changed, 42 insertions, 23 deletions
| diff --git a/app/models/compliance_check.rb b/app/models/compliance_check.rb index 55f2ae228..71cb9aef2 100644 --- a/app/models/compliance_check.rb +++ b/app/models/compliance_check.rb @@ -1,14 +1,22 @@  class ComplianceCheck < ActiveRecord::Base +  include ComplianceItemSupport    self.inheritance_column = nil    extend Enumerize    belongs_to :compliance_check_set    belongs_to :compliance_check_block -   +    enumerize :criticity, in: %i(warning error), scope: true, default: :warning    validates :criticity, presence: true    validates :name, presence: true    validates :code, presence: true    validates :origin_code, presence: true + +  def control +    ComplianceControl.find_by! origin_code: origin_code +  end + +  delegate :predicate, to: :control +  end diff --git a/app/models/compliance_control.rb b/app/models/compliance_control.rb index 298a63ab9..45f886005 100644 --- a/app/models/compliance_control.rb +++ b/app/models/compliance_control.rb @@ -1,18 +1,16 @@  class ComplianceControl < ActiveRecord::Base +  include ComplianceItemSupport    class << self      def criticities; %i(warning error) end      def default_code; "" end -    def dynamic_attributes -      stored_attributes[:control_attributes] || [] -    end      def policy_class        ComplianceControlPolicy      end      def subclass_patterns -      {  +      {          generic: 'Generic',          journey_pattern: 'JourneyPattern',          line: 'Line', @@ -45,26 +43,24 @@ class ComplianceControl < ActiveRecord::Base    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 - +    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 +  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 -def predicate; I18n.t("compliance_controls.#{self.class.name.underscore}.description") end -def prerequisite; I18n.t('compliance_controls.metas.no_prerequisite'); end +  def predicate; I18n.t("compliance_controls.#{self.class.name.underscore}.description") end  end diff --git a/app/models/concerns/compliance_item_support.rb b/app/models/concerns/compliance_item_support.rb new file mode 100644 index 000000000..4ec2f130f --- /dev/null +++ b/app/models/concerns/compliance_item_support.rb @@ -0,0 +1,15 @@ +module ComplianceItemSupport +  extend ActiveSupport::Concern +  included do + +  end + +  module ClassMethods +    def dynamic_attributes +      stored_attributes[:control_attributes] || [] +    end +  end + +  def prerequisite; I18n.t('compliance_controls.metas.no_prerequisite'); end + +end | 
