diff options
Diffstat (limited to 'app/models')
| -rw-r--r-- | app/models/compliance_check_block.rb | 2 | ||||
| -rw-r--r-- | app/models/compliance_check_set.rb | 3 | ||||
| -rw-r--r-- | app/models/compliance_control.rb | 11 |
3 files changed, 16 insertions, 0 deletions
diff --git a/app/models/compliance_check_block.rb b/app/models/compliance_check_block.rb index 035c03ed9..ee60a8bb1 100644 --- a/app/models/compliance_check_block.rb +++ b/app/models/compliance_check_block.rb @@ -1,3 +1,5 @@ class ComplianceCheckBlock < ActiveRecord::Base belongs_to :compliance_check_set + + has_many :compliance_checks end diff --git a/app/models/compliance_check_set.rb b/app/models/compliance_check_set.rb index e4146e0e2..536afc705 100644 --- a/app/models/compliance_check_set.rb +++ b/app/models/compliance_check_set.rb @@ -6,6 +6,9 @@ class ComplianceCheckSet < ActiveRecord::Base belongs_to :workbench belongs_to :parent, polymorphic: true + has_many :compliance_check_blocks + has_many :compliance_checks + has_many :compliance_check_resources has_many :compliance_check_messages diff --git a/app/models/compliance_control.rb b/app/models/compliance_control.rb index 33a075e40..363ef5d61 100644 --- a/app/models/compliance_control.rb +++ b/app/models/compliance_control.rb @@ -12,6 +12,17 @@ class ComplianceControl < ActiveRecord::Base 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 default_criticity; :warning end def default_code; "" end |
