From 2f68a7e9ea109c4667a64ee183c052eaa6b3d5e8 Mon Sep 17 00:00:00 2001 From: Robert Date: Tue, 3 Oct 2017 21:20:16 +0200 Subject: Refs: #4629@1.5h; Specs and implements coherent direct and indirect ComplianceControlSet parentship for ComplianceControls --- app/models/compliance_control.rb | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'app/models/compliance_control.rb') diff --git a/app/models/compliance_control.rb b/app/models/compliance_control.rb index 947a10719..7e4e22636 100644 --- a/app/models/compliance_control.rb +++ b/app/models/compliance_control.rb @@ -12,6 +12,13 @@ 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 + errors.add(:coherent_control_set, I18n.t('compliance_controls.errors.incoherent_control_sets', indirect_set_id: ids.first, direct_set_id: ids.last)) + end + class << self def create *args super.tap do | x | -- cgit v1.2.3