aboutsummaryrefslogtreecommitdiffstats
path: root/app/models/compliance_control.rb
diff options
context:
space:
mode:
authorGuillaume2017-09-28 10:35:55 +0200
committerGuillaume2017-09-28 10:35:55 +0200
commit689a8f7c89ea0841fee1e2da97dacf98ff458104 (patch)
tree9cee685ae1a8afb43ca2a2497b9d4f4e1c6fb7b2 /app/models/compliance_control.rb
parentb84188abb33417a24274fc3ba179b6eb2ba8a067 (diff)
parent2b5815827005f7fa69403b9177feafa4d42c3cb2 (diff)
downloadchouette-core-689a8f7c89ea0841fee1e2da97dacf98ff458104.tar.bz2
Merge branch 'master' of https://github.com/af83/stif-boiv
Diffstat (limited to 'app/models/compliance_control.rb')
-rw-r--r--app/models/compliance_control.rb34
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'