diff options
Diffstat (limited to 'app/models/compliance_control.rb')
| -rw-r--r-- | app/models/compliance_control.rb | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/app/models/compliance_control.rb b/app/models/compliance_control.rb index 12ff4737a..c5389e832 100644 --- a/app/models/compliance_control.rb +++ b/app/models/compliance_control.rb @@ -1,12 +1,42 @@ class ComplianceControl < ActiveRecord::Base + extend Enumerize belongs_to :compliance_control_set - belongs_to :compliance_control_block + has_one :compliance_control_block, dependent: :destroy + accepts_nested_attributes_for :compliance_control_block + + @@default_criticity = :warning + @@default_code = "" - extend Enumerize enumerize :criticity, in: %i(info warning error), scope: true, default: :info validates :criticity, presence: true validates :name, presence: true validates :code, presence: true + validates :origin_code, presence: true validates :compliance_control_set, presence: true + + def self.policy_class + ComplianceControlPolicy + end + + def self.inherited(child) + child.instance_eval do + def model_name + ComplianceControl.model_name + end + end + super + end + + before_validation(on: :create) do + self.name ||= self.class.name + self.code ||= @@default_code + self.origin_code ||= @@default_code + self.criticity ||= @@default_criticity + end + end + +# Ensure STI subclasses are loaded +# http://guides.rubyonrails.org/autoloading_and_reloading_constants.html#autoloading-and-sti +require_dependency 'generic_attribute_control/min_max' |
