aboutsummaryrefslogtreecommitdiffstats
path: root/app/models/compliance_control.rb
diff options
context:
space:
mode:
authorGuillaume2017-11-03 16:20:06 +0100
committerGuillaume2017-11-03 16:20:06 +0100
commita9216c0457f81c9c27f6ec5d3100941b68ddf9e4 (patch)
treeae73f172e54b1dd4501f9749484d1496182974cd /app/models/compliance_control.rb
parentf201d7cdd68ca554e7a99eb791baf48a540b8978 (diff)
parent75988d4b5d821266131aec86e33c67eda0c38dcb (diff)
downloadchouette-core-a9216c0457f81c9c27f6ec5d3100941b68ddf9e4.tar.bz2
Merge branch 'master' into 4755-page_for_validate_referential
Diffstat (limited to 'app/models/compliance_control.rb')
-rw-r--r--app/models/compliance_control.rb72
1 files changed, 43 insertions, 29 deletions
diff --git a/app/models/compliance_control.rb b/app/models/compliance_control.rb
index 08efa7e9a..49fb6513f 100644
--- a/app/models/compliance_control.rb
+++ b/app/models/compliance_control.rb
@@ -1,29 +1,7 @@
class ComplianceControl < ActiveRecord::Base
- extend Enumerize
- belongs_to :compliance_control_set
- belongs_to :compliance_control_block
-
- enumerize :criticity, in: %i(warning error), scope: true, default: :warning
- hstore_accessor :control_attributes, {}
-
- validates :criticity, presence: true
- validates :name, presence: true
- validates :code, presence: true, uniqueness: { scope: :compliance_control_set }
- 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 criticities; %i(warning error) end
def default_code; "" end
def dynamic_attributes
hstore_metadata_for_control_attributes.keys
@@ -33,6 +11,17 @@ class ComplianceControl < ActiveRecord::Base
ComplianceControlPolicy
end
+ def subclass_patterns
+ {
+ generic: 'Generic',
+ journey_pattern: 'JourneyPattern',
+ line: 'Line',
+ route: 'Route',
+ routing_constraint_zone: 'RoutingConstraint',
+ vehicle_journey: 'VehicleJourney'
+ }
+ end
+
def inherited(child)
child.instance_eval do
def model_name
@@ -43,12 +32,37 @@ class ComplianceControl < ActiveRecord::Base
end
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
+ extend Enumerize
+ belongs_to :compliance_control_set
+ belongs_to :compliance_control_block
+
+ enumerize :criticity, in: criticities, scope: true, default: :warning
+ hstore_accessor :control_attributes, {}
+
+ validates :criticity, presence: true
+ validates :name, presence: true
+ validates :code, presence: true, uniqueness: { scope: :compliance_control_set }
+ 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
+
+
+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
end